DateTimeFormatter.ofPattern()
Создаёт форматтер для вывода и разбора дат по шаблону вроде dd.MM.yyyy.
Доступно с: Java 8
Синтаксис
static DateTimeFormatter ofPattern(String pattern, Locale locale)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| pattern | String | Шаблон: yyyy — год, MM — месяц, dd — день, HH — часы, mm — минуты, MMMM — название месяца, EEEE — день недели. |
| locale | Locale | Язык для названий месяцев и дней. Можно не указывать — тогда язык системы. |
Возвращаемое значение
DateTimeFormatterНеизменяемый и потокобезопасный форматтер.
Примеры
Числовые шаблоны:
void main() {
LocalDateTime dt = LocalDateTime.of(2025, 3, 4, 9, 5);
IO.println(dt.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")));
IO.println(dt.format(DateTimeFormatter.ofPattern("d/M/yy HH:mm")));
IO.println(dt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm")));
}Результат:
04.03.2025
4/3/25 09:05
2025-03-04T09:05Названия месяцев и дней — с явным языком:
void main() {
LocalDate date = LocalDate.of(2025, 3, 14);
var en = DateTimeFormatter.ofPattern("EEEE, d MMMM yyyy", Locale.ENGLISH);
var de = DateTimeFormatter.ofPattern("EEEE, d. MMMM yyyy", Locale.GERMAN);
IO.println(date.format(en));
IO.println(date.format(de));
}Результат:
Friday, 14 March 2025
Freitag, 14. März 2025Примечания
Регистр букв важен: MM — месяц, mm — минуты; HH — часы 0–23, hh — 1–12 (с ним нужен a для AM/PM); yyyy — обычный год. Текст в шаблоне берут в одинарные кавычки: 'at'. Готовые форматы — DateTimeFormatter.ISO_LOCAL_DATE и ofLocalizedDate(FormatStyle.LONG).
См. также
- LocalDate.parse() — Разбирает дату из строки — в формате ISO (2025-03-14) или по шаблону.
- LocalDateTime — Дата и время без часового пояса — например, время встречи в календаре.
- String.format() — Собирает строку по шаблону с подстановками вроде %s и %d.
Вопросы и ответы по теме
В учебнике
- Форматирование и разбор дат — DateTimeFormatter в Java — шаблоны вроде dd.MM.yyyy, названия месяцев на нужном языке, разбор строки в дату и ошибки в шаблонах.