DateTimeParseException: текст «1 августа 2018 г.» не удалось проанализировать по индексу 2
Мне нужно обработать данные в виде файла, разделенного табуляцией, с датами в формате дд-МММ-гггг, например 1 августа 2018 г. или 15 сентября 2023 г. Мой код:
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern ("d-MMM-uuuu");
private LocalDateTime toDate (String raw) {
LocalDateTime date = LocalDateTime.parse (raw, DATE_FORMATTER);
return date;
}
Мое исключение:
Исключение в потоке «main» java.time.format.DateTimeParseException: текст «1 августа 2018 г.» не удалось проанализировать по индексу 2.
Проведено исследование:
- Внимательное чтение документации Oracle Java.
- Пытался
dd
вместоd
но это просто переместило индекс на 0 вместо 2 - Пытался
yyyy
вместоuuuu
(от отчаяния проблема явно не в этом) - Час блуждания по Интернету, но несколько примеров моего шаблона с DateTimeFormatter (вместо SimpleDate, неужели никто никогда не убирал старый мусор в Интернете?!) используют его для форматирования вывода, а не для анализа ввода.
- Еще час траления StackOverflow, который даже хуже, чем общий Интернет, в поисках устаревших решений (хотя ответы гораздо более профессиональные), но все ответы, похоже, включают в себя разные шаблоны, и я не вижу никаких различий в коде
Какие-либо предложения? Или указания к соответствующим ответам?