Класс 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 |