gpt4 book ai didi

java - 为什么Java的java.time.format.DateTimeFormatter#format(LocalDateTime)要加一年?

转载 作者:行者123 更新时间:2023-12-05 09:21:05 24 4
gpt4 key购买 nike

这是代码:

LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(1451438792953L), ZoneId.of("UTC"));
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd'T'HH:mm:ss.SSS'Z'");
String output = dateTimeFormatter.format(localDateTime);

这是 localDateTime 的值:

2015-12-30T01:26:32.953

这是输出的值:

2016-12-30T01:26:32.953Z

为什么要加一年?

java.time.temporal.WeekFields 中,有几个带有 newYearWeek 的方法,有时会将年份增加 1。为什么?

这是一个奇怪的错误。

最佳答案

来自 Wikipedia :

[YYYY] indicates the ISO week-numbering year which is slightly different from the traditional Gregorian calendar year (see below).

  1. YYYY 是年份的 ISO-8601 样式表示。
  2. yyyy 是公历纪元表示法。

由于两者的计算可能相差 +1 或 -1,因此需要格式化。更多有用信息,请访问 YEAR_OF_ERA , YEAR , 和 weekBasedYear .

关于java - 为什么Java的java.time.format.DateTimeFormatter#format(LocalDateTime)要加一年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com