字符串中的月份到本地日期

Month Year In String to Local Date

我正在尝试将一些日期字符串解析为日期值,但是,使用以下代码时,出现异常:

我的代码

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
          .parseCaseInsensitive()
          .append(DateTimeFormatter.ofPattern("MMM-uuuu"))
          .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
          .toFormatter(Locale.ENGLISH);

         LocalDate KFilter = null;
         KFilter = YearMonth.parse("July-2021", formatter).atDay(1)

错误日志为

java.time.format.DateTimeParseException: Text 'July-2021' could not be parsed at index 3

我认为格式有问题: "MMM-uuuu" 与字符串 "july" 不兼容,因此在索引 3 'y' 处它期待 '-'

格式应该匹配。 试试这个。

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .parseCaseInsensitive()
        .append(DateTimeFormatter.ofPattern("MMM-uuuu"))
        .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
        .toFormatter(Locale.ENGLISH);
    
    LocalDate KFilter = null;
    KFilter = YearMonth.parse("Jul-2021", formatter).atDay(1);

使用 2021 年 7 月而不是 2021 年 7 月

LocalDate KFilter = null;
         KFilter = YearMonth.parse("Jul-2021", formatter).atDay(1)