LocalDateTime格式化日期年份错误
今天(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比较
还没有评论,来说两句吧...