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

Класс Java LocalDate представляет календарную дату без времени(часы/минуты/секунды) и информации о часовом поясе. Узнайте, как преобразовать строку в объект LocalDate в Java.

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

1. Анализ строки в LocalDate

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

1.1. Шаблон по умолчанию

Следующая программа преобразует строку в LocalDate, где строка даты имеет формат по умолчанию гггг-ММ-дд.

LocalDate today = LocalDate.parse("2019-03-29"); 

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

В следующей программе мы преобразуем строку даты в пользовательском шаблоне dd-MMM-yyyy в экземпляр LocalDate.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");LocalDate date = LocalDate.parse("29-Mar-2019", formatter);

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

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

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy").withLocale(Locale.FRENCH);LocalDate date = LocalDate.parse("29-mai-2019", formatter);System.out.println(date);

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

2019-05-29

3. Полезные шаблоны дат

Ниже приведены некоторые полезные шаблоны дат и их примеры для преобразования дат из строк в LocalDate.

Шаблон Пример строки даты
гггг-ММ-дд 2019-03-29
дд-МММ-гггг 29-мар-2019
дд/ММ/гггг 29/03/2019
Е, МММ дд гггг Пт, Мар 29 2019

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

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