欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

LocalDateTime格式化日期年份错误

程序员文章站 2022-06-27 23:19:39
今天(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的说明里找到了原因。

官网链接
LocalDateTime格式化日期年份错误
从上面的说明可以看出,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

相关标签: Java