java LocalDate 中日期格式的错误

Bug in java LocalDate for Date Format

我正在 运行 一些代码,但遇到了一个我无法理解的 st运行ge 错误。 所以我尝试调试它并 运行 多次测试并发现了这个 这是我的代码 运行

@Test
public void test(){

    LocalDate firstDay = LocalDate.parse("2020-12-01");
    LocalDate lastDay = LocalDate.parse("2020-12-31");

    String firstDayString = firstDay.format(DateTimeFormatter.ofPattern("YYYYMMdd"));
    String lastDayString = lastDay.format(DateTimeFormatter.ofPattern("YYYYMMdd"));

    System.out.println(firstDayString);
    System.out.println(lastDayString);

}

这是输出

20201201
20211231

请注意,当我尝试设置格式时,最后日期的年份更改为 2021 年。 还有其他人注意到这一点吗?

如果您预计这两个日期都是 2020 年,那么您的格式不正确。将其更改为 yyyyMMdd

  • y(小写)是年份
  • Y(大写)是 'week-based-year'

值得一读:yyyy-vs-yyyy-the-day-the-java-date-formatter-hurt-my-brain