LocalDate DateTimeFormatter 问题
LocalDate DateTimeFormatter problems
我已经阅读了手册,但我完全不知道为什么这段代码不起作用。
// Date Entered must be valid
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy")
.withResolverStyle(ResolverStyle.STRICT);
try {
String dateEntered = lossDateMonth + "/" + lossDateDay + "/" + lossDateYear; // Slash to match UI
System.out.println(dateEntered);
LocalDate dateParsed = LocalDate.parse(dateEntered, dateTimeFormatter);
println 语句打印:07/29/2015
最后一行抛出异常:
java.time.format.DateTimeParseException:无法解析文本“07/29/2015”:无法从 TemporalAccessor 获取 LocalDate:{YearOfEra=2015,DayOfMonth=29,MonthOfYear=7},ISO 类型 java.time.format.Parsed
我阅读了这方面的手册,它说如果您尝试解析一个不存在的日期,例如 9 月 31 日,就会发生这种情况。即使在错误中,解析器似乎也明白我在问 2015 年 7 月 29 日,所以我在这里做错了什么?
将模式 "MM/dd/yyyy"
替换为 "MM/dd/uuuu"
。看看 DateTimeFormatter and IsoChronology。问题是,当使用 .withResolverStyle(ResolverStyle.STRICT)
时,格式化程序需要一个唯一的年份标识符,该标识符由 uuuu
提供,其中 yyyy
是 纪元 的年份.这是为了 严格 验证值。 uuuu
可以为负数这一事实给出了唯一性。
查看 , and 相关帖子。
我已经阅读了手册,但我完全不知道为什么这段代码不起作用。
// Date Entered must be valid
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy")
.withResolverStyle(ResolverStyle.STRICT);
try {
String dateEntered = lossDateMonth + "/" + lossDateDay + "/" + lossDateYear; // Slash to match UI
System.out.println(dateEntered);
LocalDate dateParsed = LocalDate.parse(dateEntered, dateTimeFormatter);
println 语句打印:07/29/2015
最后一行抛出异常: java.time.format.DateTimeParseException:无法解析文本“07/29/2015”:无法从 TemporalAccessor 获取 LocalDate:{YearOfEra=2015,DayOfMonth=29,MonthOfYear=7},ISO 类型 java.time.format.Parsed
我阅读了这方面的手册,它说如果您尝试解析一个不存在的日期,例如 9 月 31 日,就会发生这种情况。即使在错误中,解析器似乎也明白我在问 2015 年 7 月 29 日,所以我在这里做错了什么?
将模式 "MM/dd/yyyy"
替换为 "MM/dd/uuuu"
。看看 DateTimeFormatter and IsoChronology。问题是,当使用 .withResolverStyle(ResolverStyle.STRICT)
时,格式化程序需要一个唯一的年份标识符,该标识符由 uuuu
提供,其中 yyyy
是 纪元 的年份.这是为了 严格 验证值。 uuuu
可以为负数这一事实给出了唯一性。
查看