【发布时间】:2016-01-05 13:06:19
【问题描述】:
我在运行一些代码时遇到了一个奇怪的错误。这是一个简单的版本来展示相同的内容。
public class DateTest {
public static void main(String[] args) {
LocalDate decLast = LocalDate.of(2015, 12, 31);
LocalDate novLast = LocalDate.of(2015, 11, 30);
LocalDate octLast = LocalDate.of(2015, 10, 31);
System.out.println(decLast+" "+novLast+" "+octLast);
System.out.println(decLast.format(DateTimeFormatter.ofPattern("dd M YY"))+" "
+novLast.format(DateTimeFormatter.ofPattern("dd M YY"))+" "
+octLast.format(DateTimeFormatter.ofPattern("dd M YY")));
}
}
这返回了以下结果
2015-12-31 2015-11-30 2015-10-31
31/12/16 30/11/15 31/10/15
不知何故,2015 年 12 月 31 日转换为 2016 年 12 月 31 日。 我写了一个 for 循环来为不同的年份做同样的事情,发现很多年都有变化。对于 12 月 26 日以下的任何日期,该错误都不存在。这是一个错误还是我在这里遗漏了什么?
【问题讨论】:
标签: java datetime java-8 java-time