Функция toZonedDateTime

Функция toZonedDateTime класса OffsetDateTime преобразует объект OffsetDateTime в объект ZonedDateTime. В параметр мы передаем зону ZoneId, к которой нужно привязать дату и время.

Импорт

kotlinimport java.time.OffsetDateTime
import java.time.ZoneId

Синтаксис

kotlinfun toZonedDateTime(zone: ZoneId): ZonedDateTime

Пример

Преобразуем объект OffsetDateTime в ZonedDateTime с зоной "Europe/London":

kotlinval offsetDateTime = OffsetDateTime.parse("2025-07-15T10:30:45+03:00")
val londonZone = ZoneId.of("Europe/London")
val zonedDateTime = offsetDateTime.toZonedDateTime(londonZone)

println(zonedDateTime)

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

kotlinString "2025-07-15T08:30:45+01:00[Europe/London]"

Пример

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

kotlinval offsetDateTime = OffsetDateTime.parse("2025-12-31T23:59:59-05:00")
val systemZone = ZoneId.systemDefault()
val zonedDateTime = offsetDateTime.toZonedDateTime(systemZone)

println(zonedDateTime)

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

kotlinString "2025-12-31T23:59:59-05:00[America/New_York]"

Пример

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

kotlinval offsetDateTime = OffsetDateTime.parse("2025-03-20T12:15:30+02:00")
val tokyoZone = ZoneId.of("Asia/Tokyo")
val zonedDateTime = offsetDateTime.toZonedDateTime(tokyoZone)

val year = zonedDateTime.year
val hour = zonedDateTime.hour
val zone = zonedDateTime.zone

println("Year: $year, Hour: $hour, Zone: $zone")

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

kotlinString "Year: 2025, Hour: 19, Zone: Asia/Tokyo"

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

  • функцию now класса OffsetDateTime,
    которая возвращает текущие дату и время со смещением
  • функцию of класса OffsetDateTime,
    которая создает дату и время со смещением из компонентов
  • функцию parse класса OffsetDateTime,
    которая преобразует строку в дату и время со смещением
  • класс ZonedDateTime,
    который представляет дату и время с информацией о временной зоне