JAVA中,日期格式化YYYY 与yyyy区别
作者:mmseoamin日期:2024-02-05

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

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

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

我们直接来看代码

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

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

2.结果

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

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

中间整整跨越了一年。

原因:

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

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

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

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

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

小写yyyy表示的就是年份。

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