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, который даже хуже, чем общий Интернет, в поисках устаревших решений (хотя ответы гораздо более профессиональные), но все ответы, похоже, включают в себя разные шаблоны, и я не вижу никаких различий в коде

Какие-либо предложения? Или указания к соответствующим ответам?

0 ответов

Другие вопросы по тегам