【发布时间】:2020-05-08 16:37:35
【问题描述】:
我在 12 月 30 日和 31 日在 LocalDate 上使用 Java 的 DateTimeFormatter 时发现了奇怪的行为。
LocalDate date1 = LocalDate.of(2019, Month.DECEMBER, 30);
System.out.println("date1: " + date1);
System.out.println("converted date1: " + DateTimeFormatter.ofPattern("YYYY-MM-dd").format(date1));
LocalDate date2 = LocalDate.of(2019, Month.JANUARY, 30);
System.out.println("date2: " + date2);
System.out.println("converted date2: " + DateTimeFormatter.ofPattern("YYYY-MM-dd").format(date2));
输出:
date1: 2019-12-30
converted date1: 2020-12-30
date2: 2019-01-30
converted date2: 2019-01-30
第一个日期(12 月 30 日)转换为下一年,第二个日期(1 月 30 日)转换为正确的年份。
是我遗漏了什么,还是一个错误?
【问题讨论】:
-
您可能想要
yyyy而不是YYYY。你需要小心这些模式,它们不仅仅是随机的字母。 -
一个方便的提示要牢记:blog.codinghorror.com/…
标签: java date date-formatting localdate