JAVA中,日期格式化YYYY 与yyyy区别

在java中我们时常会使用到日期格式化,例如“YYYY-MM-dd”、“yyyy-MM-dd”

今天我们来看一下大写Y与小写y有什么不同。

先总结:尽量使用小写y来表示年份。

我们直接来看代码

1.将日期设置成2023年12月31日,并且分别使用大写Y和小写y进行格式化打印;

JAVA中,日期格式化YYYY 与yyyy区别

2.结果

JAVA中,日期格式化YYYY 与yyyy区别

我们惊讶的发现,同一天打印出来的结果竟然不一致。

中间整整跨越了一年。

原因:

“YYYY”表示的是Week year,就是这天所在的周所属的年。而每年的第一周是怎么定义的呢。

ISO 8601中给出了定义:本年第一个周四所在的那一个星期。

JAVA中,日期格式化YYYY 与yyyy区别

按照日历我们可以发现,2024年的第一个周四是一月四号,而一周的第一天是周日,2023年的12月

31日刚好是2024年的第一周的周日。所以YYYY将2023年12月31日算在了2024年;

小写yyyy表示的就是年份。

所以在日常代码中我们使用小写y来格式化。以防止发生bug。

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a265812af1.html