Функция atZone

Функция atZone класса LocalDateTime преобразует объект LocalDateTime в объект ZonedDateTime, добавляя информацию о часовом поясе. В параметр мы передаем объект ZoneId, представляющий часовой пояс.

Импорт

kotlinimport java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZonedDateTime

Синтаксис

kotlinfun atZone(zone: ZoneId): ZonedDateTime

Пример

Преобразуем LocalDateTime в ZonedDateTime для часового пояса "Europe/Moscow":

kotlinval localDateTime = LocalDateTime.of(2025, 12, 31, 15, 30, 45)
val zoneId = ZoneId.of("Europe/Moscow")
val zonedDateTime = localDateTime.atZone(zoneId)

println(zonedDateTime)

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

kotlinString "2025-12-31T15:30:45+03:00[Europe/Moscow]"

Пример

Используем системный часовой пояс по умолчанию:

kotlinval localDateTime = LocalDateTime.of(2025, 7, 15, 10, 0, 0)
val systemZone = ZoneId.systemDefault()
val zonedDateTime = localDateTime.atZone(systemZone)

println("System zone: " + systemZone)
println("Zoned datetime: " + zonedDateTime)

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

kotlinString "System zone: Europe/Moscow"
String "Zoned datetime: 2025-07-15T10:00+03:00[Europe/Moscow]"

Пример

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

kotlinval localDateTime = LocalDateTime.of(2025, 3, 20, 18, 45, 30)
val zonedDateTime = localDateTime.atZone(ZoneId.of("America/New_York"))

val year = zonedDateTime.year
val month = zonedDateTime.monthValue
val day = zonedDateTime.dayOfMonth
val hour = zonedDateTime.hour
val minute = zonedDateTime.minute
val zone = zonedDateTime.zone

println("Year: $year, Month: $month, Day: $day")
println("Time: $hour:$minute")
println("Zone: $zone")

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

kotlinString "Year: 2025, Month: 3, Day: 20"
String "Time: 18:45"
String "Zone: America/New_York"

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

  • функцию atOffset класса LocalDateTime,
    которая преобразует LocalDateTime в OffsetDateTime
  • функцию toLocalDateTime класса ZonedDateTime,
    которая преобразует ZonedDateTime обратно в LocalDateTime
  • класс ZoneId,
    который представляет идентификатор часового пояса
  • класс ZonedDateTime,
    который представляет дату и время с информацией о часовом поясе