首先在1月份使用DateTimeFormatter会导致无效的年份值

时间:2017-10-20 10:30:55

标签: java

当我在设置为2017年1月1日的LocalDate上使用DateTimeFormatter(代码低于)时,我的结果是错误的年份值。

LocalDate.of(2017,1,1).toString

这将在

时正确显示2017-01-01
LocalDate.of(2017,1,1).format(DateTimeFormatter.ofPattern("dd MMM YYYY"))

给我: 01 janv。 2016.你知道为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

你正在使用"错误"年。

 Symbol  Meaning            Presentation    Examples  
 ------  -------            ------------    -------  
 y       year-of-era        year            2004; 04  
 Y       week-based-year    year            1996; 96

来源:DateTimeFormatter

这基本上是使用本周的第一天来查看它在哪一年而不是实际的一天。

其中一个问题是这是本地依赖...

您应该使用DateTimeFormatter.ofPattern("dd MMM yyyy")