时间格式YYYY设置的问题
参考网址:
https://mp.weixin.qq.com/s/3-KRkKKalYfR6c2ivRjHqw
第17. 处理Java日期时,当心YYYY格式设置的问题
问题说明
日常开发中,我们经常需要处理日期。我们要当时日期格式化的时候,年份是大写YYYY
的坑。
示例代码
Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.DECEMBER, 31);
Date testDate = calendar.getTime();
SimpleDateFormat dtf = new SimpleDateFormat("YYYY-MM-dd");
System.out.println("2019-12-31 转 YYYY-MM-dd 格式后 " + dtf.format(testDate));
运行结果
2019-12-31 转 YYYY-MM-dd 格式后 2020-12-31
结论总结
为什么明明是2019年12月31号,就转了一下格式,就变成了2020年12月31号了?因为YYYY是基于周来计算年的,它指向当天所在周属于的年份,一周从周日开始算起,周六结束,只要本周跨年,那么这一周就算下一年的了。正确姿势是使用yyyy格式。