LocalDateTime格式化日期年份错误
程序员文章站
2022-03-19 16:03:59
今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。官网链接从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而今天(2020-12-28,周一)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出...
今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。
public String getFormatDateString(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYYMMdd"));
}
最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。
官网链接
从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而这周(2020-12-28到2021-01-03)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出来,正好被我测试到。
关于localDateTime的详细使用,可以参照我的这篇博文。
jdk8中的LocalTime,LocalDate,LocalDateTime与jdk8之前的Date,SimpleDateFormat比较
本文地址:https://blog.csdn.net/qq_42389764/article/details/111866631