Функция toInstant

Функция toInstant класса OffsetDateTime преобразует объект с датой, временем и смещением в объект Instant, который представляет собой момент времени на временной шкале UTC. Преобразование учитывает смещение часового пояса, чтобы получить корректное значение Instant.

Импорт

kotlinimport java.time.OffsetDateTime
import java.time.Instant

Синтаксис

kotlinfun toInstant(): Instant

Пример

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

kotlinval offsetDateTime = OffsetDateTime.parse("2025-07-15T10:30:45+03:00")
val instant = offsetDateTime.toInstant()
println(instant)

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

kotlinInstant "2025-07-15T07:30:45Z"

Пример

Сравним преобразование с разными смещениями часовых поясов:

kotlinval odt1 = OffsetDateTime.parse("2025-12-31T23:00:00+02:00")
val odt2 = OffsetDateTime.parse("2025-12-31T22:00:00+01:00")

val instant1 = odt1.toInstant()
val instant2 = odt2.toInstant()

println("Instant 1: $instant1")
println("Instant 2: $instant2")
println("Are equal: ${instant1 == instant2}")

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

kotlinString "Instant 1: 2025-12-31T21:00:00Z"
String "Instant 2: 2025-12-31T21:00:00Z"
String "Are equal: true"

Пример

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

kotlinval offsetDateTime = OffsetDateTime.parse("2025-03-20T15:45:30-05:00")
val instant = offsetDateTime.toInstant()

val seconds = instant.epochSecond
val nanos = instant.nano

println("Epoch seconds: $seconds")
println("Nanoseconds: $nanos")

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

kotlinString "Epoch seconds: 1742489130"
String "Nanoseconds: 0"

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

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