Преобразование строки в LocalDateTime в Java

Java LocalDateTime класс представляет момент в локальной временной шкале, т.е. без какой-либо информации о часовом поясе. Узнайте, как преобразовать строку в объект LocalDateTime в Java.

1. Разбор строки в LocalDateTime

Метод LocalDateTime.parse() принимает два аргумента. Первый аргумент — это строка, представляющая дату. А второй необязательный аргумент — это экземпляр DateTimeFormatter, задающий любой пользовательский шаблон.

1.1. Шаблон по умолчанию -> гггг-ММ-ддТчч:мм:сс

Шаблон даты по умолчанию — DateTimeFormatter.ISO_LOCAL_DATE_TIME, то есть гггг-ММ-ддТчч:мм:сс.

Формат состоит из следующего:

  • ISO_LOCAL_DATE
  • Буква «Т». Анализ нечувствителен к регистру.
  • ISO_LOCAL_TIME

ISO_LOCAL_DATE_TIME = ISO_LOCAL_DATE + 'T' + ISO_LOCAL_TIME

LocalDateTime today = LocalDateTime.parse("2019-03-27T10:15:30");System.out.println(today);

Вывод программы:

2021-03-27T10:15:30

1.2 Пользовательские шаблоны

Пользовательские шаблоны можно построить с помощью DateTimeFormatter. Затем передайте его экземпляр в качестве второго аргумента методу LocalDateTime.parse().

final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a");LocalDateTime dateTime = LocalDateTime.parse("2019-03-27 10:15:30 AM", formatter);System.out.println(dateTime);

Вывод программы.

2021-03-27T10:15:30

2. Шаблоны, специфичные для локали

Иногда у нас могут быть даты в определенных локалях, например, французских, например, 29-мар-2019 будет записано на французском как 29-мар-2019. Чтобы проанализировать такие даты, используйте метод DateTimeFormatter withLocale(), чтобы получить форматировщик в этой локали и проанализировать даты.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMMM-dd HH:mm:ss a").withLocale(Locale.FRENCH);LocalDateTime date = LocalDateTime.parse("2019-mai-29 10:15:30 AM", formatter);System.out.println(date);

Вывод программы.

2021-05-29T10:15:30

Исходный код на Github

Прокрутить вверх