DateTimeFormatter 抛出异常 "could not be parsed at index 0"

DateTimeFormatter throwing exception "could not be parsed at index 0"

我一直收到来自 运行 这段代码的错误。

java.time.format.DateTimeParseException:无法在索引 0

处解析文本 'Jan 03, 2020'
final String myFormat = "LLL dd, yyyy"; //sets format in which to show date (same as how its saved in database) ex. Jan 29, 2020
final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(myFormat);

String startingBiWeeklyCheck = sharedPreferences.getString("biweekly start", "Jan 03, 2020");
            LocalDate startingDate = LocalDate.parse(startingBiWeeklyCheck, dateFormatter);

我试过这种格式,但我不明白为什么模式“LLL dd, yyyy”不能解析 Jan 03, 2020

您应该使用 MMM 而不是 LLL 进行月份解析。

更新:

我上面的回答是错误的。已经回答一半了

交易 DateTimeFormatter.ofPattern(myFormat) 使用默认值 Locale。 对于非美国语言环境,它不起作用。 所以你需要根据你的模式指定语言环境。

DateTimeFormatter.ofPattern(myFormat).withLocale(Locale.US)