在 Java 8 中,下面的代码将“18”解析为“0018”而不是“2018”。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/y");
return LocalDate.parse(date, formatter);
输入日期是“01/05/18”。
1)为什么结果是“0018”?不DateTimeFormatter
遵循 80-20 规则?
2)如何控制 SimpleDateFormat 解析为 19xx 或 20xx?讲到SimpleDateFormat.set2DigitYearStart(Date)
可以用来修年。有没有类似的东西DateTimeFormatter
?
我希望“M/d/y”能够解析 2 位和 4 位数字年份。
“M/d/yy”抛出 4 位数年份的异常并将“01/05/97”解析为“2097-01-05”。理想情况下,这应该被解析为“1997-01-05”。
"M/d/yyyy" 抛出 2 位数年份的异常。