Класс LocalDateTime

Класс LocalDateTime представляет комбинацию даты и времени без привязки к часовому поясу. Он хранит год, месяц, день, час, минуту, секунду и наносекунду. Объекты LocalDateTime являются неизменяемыми и потокобезопасными.

Импорт

kotlinimport java.time.LocalDateTime

Синтаксис создания

kotlin// Текущая дата и время
val now = LocalDateTime.now()
kotlin// Из компонентов даты и времени
val dateTime = LocalDateTime.of(2025, 12, 31, 23, 59, 30)
kotlin// Парсинг из строки ISO-8601
val parsed = LocalDateTime.parse("2025-12-31T23:59:30")
kotlin// Парсинг с кастомным форматтером
val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
val customParsed = LocalDateTime.parse("31/12/2025 23:59:30", formatter)

Пример

Создадим объект LocalDateTime с текущей датой и временем:

kotlinval currentDateTime = LocalDateTime.now()
println(currentDateTime)

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

kotlinString "2025-09-10T14:30:45.123456789"

Пример

Создадим конкретную дату и время с помощью метода of:

kotlinval newYear = LocalDateTime.of(2025, 12, 31, 23, 59, 59)
println(newYear)

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

kotlinString "2025-12-31T23:59:59"

Пример

Распарсим строку в формате ISO-8601:

kotlinval dateTimeStr = "2025-07-15T14:30:45"
val dateTime = LocalDateTime.parse(dateTimeStr)
println(dateTime)

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

kotlinString "2025-07-15T14:30:45"

Пример

Получим отдельные компоненты даты и времени:

kotlinval dateTime = LocalDateTime.of(2025, 12, 31, 23, 59, 30)

val year = dateTime.year
val month = dateTime.monthValue
val day = dateTime.dayOfMonth
val hour = dateTime.hour
val minute = dateTime.minute
val second = dateTime.second

println("$year-$month-$day $hour:$minute:$second")

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

kotlinString "2025-12-31 23:59:30"

Пример

Изменим дату и время с помощью методов:

kotlinval dateTime = LocalDateTime.of(2025, 12, 31, 23, 59, 30)

val nextDay = dateTime.plusDays(1)
val prevHour = dateTime.minusHours(1)
val nextYear = dateTime.plusYears(1)

println("Original: $dateTime")
println("Next day: $nextDay")
println("Prev hour: $prevHour")
println("Next year: $nextYear")

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

kotlinString "Original: 2025-12-31T23:59:30"
String "Next day: 2026-01-01T23:59:30"
String "Prev hour: 2025-12-31T22:59:30"
String "Next year: 2026-12-31T23:59:30"

Пример

Сравним две даты и времени:

kotlinval dateTime1 = LocalDateTime.of(2025, 12, 31, 23, 59, 30)
val dateTime2 = LocalDateTime.of(2026, 1, 1, 0, 0, 0)

val isBefore = dateTime1.isBefore(dateTime2)
val isAfter = dateTime1.isAfter(dateTime2)
val isEqual = dateTime1.isEqual(dateTime2)

println("Is before: $isBefore")
println("Is after: $isAfter")
println("Is equal: $isEqual")

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

kotlinString "Is before: true"
String "Is after: false"
String "Is equal: false"

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

  • класс LocalDate,
    который представляет только дату
  • класс LocalTime,
    который представляет только время
  • метод parse,
    который парсит строку в LocalDateTime
  • метод of,
    который создает LocalDateTime из компонентов