Класс DateTimeFormatter

Класс DateTimeFormatter из пакета java.time.format используется для форматирования объектов даты и времени в строку и обратного парсинга строк в объекты. Он поддерживает предопределенные форматы, такие как ISO_LOCAL_DATE, а также позволяет создавать пользовательские форматы с помощью шаблонов.

Импорт

kotlinimport java.time.format.DateTimeFormatter

Синтаксис

kotlin// Создание форматтера из шаблона
fun ofPattern(pattern: String): DateTimeFormatter
kotlin// Форматирование даты/времени в строку
fun format(temporal: TemporalAccessor): String
kotlin// Парсинг строки в дату/время
fun parse(text: CharSequence): TemporalAccessor
kotlin// Парсинг с указанием типа
fun <T : TemporalAccessor> parse(text: CharSequence, type: TemporalQuery<T>): T

Пример

Создадим форматтер для формата день/месяц/год и отформатируем дату:

kotlinimport java.time.LocalDate
import java.time.format.DateTimeFormatter

val date = LocalDate.of(2025, 12, 31)
val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy")
val formattedDate = formatter.format(date)
println(formattedDate)

Результат выполнения кода:

kotlinString "31/12/2025"

Пример

Распарсим строку с датой в формате год-месяц-день используя предопределенный форматтер:

kotlinimport java.time.LocalDate
import java.time.format.DateTimeFormatter

val dateStr = "2025-07-15"
val formatter = DateTimeFormatter.ISO_LOCAL_DATE
val date = LocalDate.parse(dateStr, formatter)
println(date)

Результат выполнения кода:

kotlinString "2025-07-15"

Пример

Создадим форматтер для даты и времени и отформатируем объект LocalDateTime:

kotlinimport java.time.LocalDateTime
import java.time.format.DateTimeFormatter

val dateTime = LocalDateTime.of(2025, 12, 31, 14, 30, 45)
val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")
val formattedDateTime = formatter.format(dateTime)
println(formattedDateTime)

Результат выполнения кода:

kotlinString "31.12.2025 14:30:45"

Пример

Используем форматтер с разными локалями для форматирования даты:

kotlinimport java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.util.Locale

val date = LocalDate.of(2025, 12, 31)
val formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.US)
val formattedDate = formatter.format(date)
println(formattedDate)

Результат выполнения кода:

kotlinString "31 December 2025"

Смотрите также

  • функцию parse класса LocalDate,
    которая преобразует строку в объект даты
  • функцию parse класса LocalDateTime,
    которая преобразует строку в объект даты и времени
  • функцию ofPattern класса DateTimeFormatter,
    которая создает форматтер из шаблона
  • класс LocalDateTime,
    который представляет дату и время