时间格式YYYY设置的问题

时间格式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格式。

猜你喜欢

转载自blog.csdn.net/shaoming314/article/details/120947443