LocalDateTime格式化日期年份错误

朱雀 2023-10-05 16:35 63阅读 0赞

今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。

  1. public String getFormatDateString(){
  2. return LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYYMMdd"));
  3. }

最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。

官网链接
在这里插入图片描述
从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而这周(2020-12-28到2021-01-03)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出来,正好被我测试到。

关于localDateTime的详细使用,可以参照我的这篇博文。
jdk8中的LocalTime,LocalDate,LocalDateTime与jdk8之前的Date,SimpleDateFormat比较

发表评论

表情:
评论列表 (有 0 条评论,63人围观)

还没有评论,来说两句吧...

相关阅读