Правильный шаблон для разбора из String в формат LocalDateTime - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь разобрать даты в формате «1 марта 2019 года» или, например, «15 марта 2019 года» в формате LocalDateTime, но я пытаюсь найти правильный шаблон для него.

Я пробовал пример с шаблоном "dd M / L yyyy" и просто "d M / L yyyy", но, похоже, ни один из них не работает.

String begda = "1 March 2019";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd M/L yyyy");
LocalDateTime ldtBeg = LocalDateTime.parse(begda, formatter);

Он просто выдаст исключение DateTimeParseException, сообщающее, что он не может быть проанализирован.

Ответы [ 3 ]

5 голосов
/ 18 мая 2019

Используйте MMMM для всего месяца, как March. И используйте d для дня как 1.

Это должно понравиться d MMMM yyyy.

И укажите Locale для человеческого языка, используемого при чтении названия месяца.

LocalDate.parse( 
    "1 March 2019" , 
    DateTimeFormatter.ofPattern( 
        "d MMMM yyyy",
        Locale.UK
    )
)
0 голосов
/ 18 мая 2019

вы ищете конвертирование строки месяца MARCH. Итак, при разборе вам нужно упомянуть, какой это язык.

при форматировании используется этот языковой стандарт и возвращается соответствующий месяц.

Если вы знакомы с Календарем, то можете использовать и его. Я думаю, что эта ссылка может дать вам подсказку

Преобразование строки месяца в целое число в Java

0 голосов
/ 18 мая 2019

Это потому, что вы делаете это неправильно

правильный формат даты для Java: ("dd MMMM yyyy")

и для получения дополнительной информации посетите этот сайт

...