Функция toOffsetDateTime
Функция toOffsetDateTime класса ZonedDateTime преобразует объект с временной зоной в объект со смещением, сохраняя те же дату и время.
Функция не принимает параметров и возвращает новый объект OffsetDateTime.
Импорт
import java.time.ZonedDateTime
import java.time.OffsetDateTime
Синтаксис
fun toOffsetDateTime(): OffsetDateTime
Пример
Преобразуем объект ZonedDateTime в OffsetDateTime:
val zonedDateTime = ZonedDateTime.parse("2025-07-15T10:30:45+03:00[Europe/Moscow]")
val offsetDateTime = zonedDateTime.toOffsetDateTime()
println(offsetDateTime)
Результат выполнения кода:
String "2025-07-15T10:30:45+03:00"
Пример
Сравним исходный ZonedDateTime и полученный OffsetDateTime:
val 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()}")
Результат выполнения кода:
String "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:
val 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")
Результат выполнения кода:
String "Date: 2025-3-20"
String "Time: 15:45"
String "Offset: -08:00"
Смотрите также
-
функцию
nowклассаZonedDateTime,
которая возвращает текущие дату и время с временной зоной -
функцию
toLocalDateTimeклассаZonedDateTime,
которая преобразует в локальные дату и время -
функцию
parseклассаOffsetDateTime,
которая создает объект из строки -
класс
OffsetDateTime,
который представляет дату и время со смещением