Функция toInstant
Функция toInstant
класса ZonedDateTime
преобразует дату и время с часовым поясом в объект Instant
, который представляет собой момент времени на временной шкале UTC. Это полезно для сравнения моментов времени независимо от часовых поясов или для хранения временных меток.
Импорт
import java.time.ZonedDateTime
import java.time.Instant
Синтаксис
fun toInstant(): Instant
Пример
Преобразуем объект ZonedDateTime
в Instant
:
val zonedDateTime = ZonedDateTime.parse("2025-07-15T10:30:45+03:00[Europe/Moscow]")
val instant = zonedDateTime.toInstant()
println(instant)
Результат выполнения кода:
String "2025-07-15T07:30:45Z"
Пример
Сравним два момента времени из разных часовых поясов с помощью преобразования в Instant
:
val zdt1 = ZonedDateTime.parse("2025-12-31T23:00:00+01:00[Europe/Paris]")
val zdt2 = ZonedDateTime.parse("2025-12-31T23:00:00-05:00[America/New_York]")
val instant1 = zdt1.toInstant()
val instant2 = zdt2.toInstant()
println("Paris instant: $instant1")
println("New York instant: $instant2")
println("Is Paris before New York? ${instant1.isBefore(instant2)}")
Результат выполнения кода:
String "Paris instant: 2025-12-31T22:00:00Z"
String "New York instant: 2026-01-01T04:00:00Z"
String "Is Paris before New York? true"
Пример
Используем Instant
для вычисления разницы во времени между двумя событиями:
val event1 = ZonedDateTime.parse("2025-06-10T09:00:00+02:00[Europe/Berlin]")
val event2 = ZonedDateTime.parse("2025-06-10T14:30:00-07:00[America/Los_Angeles]")
val instant1 = event1.toInstant()
val instant2 = event2.toInstant()
val duration = java.time.Duration.between(instant1, instant2)
println("Duration between events: ${duration.toHours()} hours")
Результат выполнения кода:
String "Duration between events: 16 hours"
Смотрите также
-
функцию
now
классаZonedDateTime
,
которая возвращает текущие дату и время в системном часовом поясе -
функцию
parse
классаZonedDateTime
,
которая преобразует строку в объект ZonedDateTime -
функцию
now
классаInstant
,
которая возвращает текущий момент времени в UTC -
функцию
toInstant
классаLocalDateTime
,
которая преобразует LocalDateTime в Instant с учетом часового пояса