Функция toOffsetDateTime

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

Импорт

kotlinimport java.time.ZonedDateTime
import java.time.OffsetDateTime

Синтаксис

kotlinfun toOffsetDateTime(): OffsetDateTime

Пример

Преобразуем объект ZonedDateTime в OffsetDateTime:

kotlinval zonedDateTime = ZonedDateTime.parse("2025-07-15T10:30:45+03:00[Europe/Moscow]")
val offsetDateTime = zonedDateTime.toOffsetDateTime()
println(offsetDateTime)

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

kotlinString "2025-07-15T10:30:45+03:00"

Пример

Сравним исходный ZonedDateTime и полученный OffsetDateTime:

kotlinval zdt = ZonedDateTime.parse("2025-12-31T23:59:59+05:00[Asia/Yekaterinburg]")
val odt = zdt.toOffsetDateTime()

println("Original ZonedDateTime: $zdt")
println("Converted OffsetDateTime: $odt")
println("Same instant: ${zdt.toInstant() == odt.toInstant()}")

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

kotlinString "Original ZonedDateTime: 2025-12-31T23:59:59+05:00[Asia/Yekaterinburg]"
String "Converted OffsetDateTime: 2025-12-31T23:59:59+05:00"
String "Same instant: true"

Пример

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

kotlinval zoned = ZonedDateTime.parse("2025-03-20T15:45:30-08:00[America/Los_Angeles]")
val offset = zoned.toOffsetDateTime()

val year = offset.year
val month = offset.monthValue
val day = offset.dayOfMonth
val hour = offset.hour
val minute = offset.minute
val offsetStr = offset.offset

println("Date: $year-$month-$day")
println("Time: $hour:$minute")
println("Offset: $offsetStr")

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

kotlinString "Date: 2025-3-20"
String "Time: 15:45"
String "Offset: -08:00"

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

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