点击查看代码
package com.bh.bugs;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test2 {
public static void main(String[] args) {
System.out.println("start=========");
// Date
Calendar cal = Calendar.getInstance();
// Calendar类中, 设置月份的话, 1月:0, 12月: 11, 也就是0-11代表了 1到12月
// cal.set(2021,12,31);
cal.set(2021,11,31);
// System.out.println(cal.getTime());
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSSS");
// 注意: 大写的Y 和小写的y 不是一个意思,一定要查看API
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss:SSSS");
String strTime = sdf.format(cal.getTime());
// 结果不是2021,而是2022了,产生了bug
// 大写Y和小写y的意思完全不通
System.out.println(strTime);
// 大写的Y ==》 week yaer
// 什么是week year
// 在国际标准中, week year是说某一周, 只能属于一个年份
// 2021/12/31日 不能既属于今年的最后的一周,又是明年的第一周
// 对于wekk year来说,一下四种是等效的。
// 1, 本年度第一个星期四所在的星期
// 2, 1月4日所在的星期
// 3, 本年度第一个至少有4天在同一星期内的星期
// 4, 星期一在余年12月29日至今年1月4日以内的星期
System.out.println("end =========");
}
}