先来看用"YYYY"和"yyyy"进行时间格式转换的结果
(当前时间是 12月31日)
可以看到用YYYY比yyyy转换的时间多了1年

所以来研究一下Y和y
y:year,表示“年”,基于天的年
Y:week year ,表示“周年”,基于周的年
According to the Javadoc:
A week year is in sync with a WEEK_OF_YEAR cycle. All weeks between the first and last weeks (inclusive) have the same week year value. Therefore, the first and last days of a week year may have different calendar year values.
举个栗子,2021年12月27日,周一,这周跨年了,所以这周的年份是2022年
总结:大家以后进行日期转换还是乖乖用yyyy吧~
ps:
SimpleDateFormat中字母和格式的对应表
| 字母 | 日期或时间元素 | 表示 | 示例 |
|---|---|---|---|
| G | Era 标志符 | Text | AD |
| Y | 年(周) | Year | 1996; 96 |

本文探讨了在Java中使用SimpleDateFormat时,"YYYY"和"yyyy"进行日期转换的区别。"YYYY"代表基于周的年,可能导致跨年问题,而"yyyy"则表示基于天的年。例如,2021年12月27日(周一)在"YYYY"格式下会显示为2022年。因此,建议在日期转换时使用"yyyy"以避免混淆。
最低0.47元/天 解锁文章
1221

被折叠的 条评论
为什么被折叠?



