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 相关帖子。