用于日期格式的javaLocalDate中的错误
我正在运行一些代码,遇到了一个我无法理解的奇怪错误。所以我尝试调试它并运行多个测试,发现这是我正在运行的代码
@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(大写)是“基于周的年”
值得一读:yyyy-vs-yyyy-the-day-the-java-date-formatter-hurt-my-brain