关于SimpleDateFormat的一个使用不当的BUG--yyyy-YYYY的区别

2022-01-12 16:47:27 浏览数 (2)

这个SimDateFormat又出新问题了,上次我说过组内小伙伴并发使用同一SimdateFormat出现了时间乱序甚至直接异常的问题 这次又有个使用不当的问题了,记录一下

1.问题描述与复现:

今天是2021年/12/30号

有图有真相噢

但是小伙伴在用YYYY进行格式化的时候,格式化今天的时间的时候格式化成了2022-12-30

问题复现

2.问题分析:

我们发现yyyy格式化是没问题的,换成大写的就有了问题,那是啥原因呢?查阅了一下官方文档有这么个解释

大概意思的 y:year-of-era;以纪年作为真正的年,只有今年最后一天过完了才算下一年;

Y:week-based-year;以周未基本,只要本周跨年,那么这周就算入下一年;

就比如今天本周就是跨年的一周,那使用 YYYY 的话会显示 2020,使用 yyyy 则会从 1.1 才开始算是 2020。

3.问题解决:

根据需求选择yyyy,YYYY

0 人点赞