Функция getOffset

Функция getOffset класса ZoneRules возвращает смещение времени от UTC для указанного момента времени. В параметр мы передаем объект Instant, представляющий момент времени, для которого нужно определить смещение.

Импорт

kotlinimport java.time.Instant
import java.time.zone.ZoneRules

Синтаксис

kotlinfun getOffset(instant: Instant): ZoneOffset

Пример

Получим смещение для часового пояса "America/New_York" в конкретный момент времени:

kotlinval zone = ZoneId.of("America/New_York")
val rules = zone.rules
val instant = Instant.parse("2025-06-15T12:00:00Z")
val offset = rules.getOffset(instant)

println("Offset: $offset")

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

kotlinString "Offset: -04:00"

Пример

Сравним смещение для летнего и зимнего времени в одном часовом поясе:

kotlinval zone = ZoneId.of("Europe/London")
val rules = zone.rules

val summerInstant = Instant.parse("2025-06-15T12:00:00Z")
val winterInstant = Instant.parse("2025-12-15T12:00:00Z")

val summerOffset = rules.getOffset(summerInstant)
val winterOffset = rules.getOffset(winterInstant)

println("Summer offset: $summerOffset")
println("Winter offset: $winterOffset")

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

kotlinString "Summer offset: +01:00"
String "Winter offset: +00:00"

Пример

Проверим смещение для фиксированного часового пояса:

kotlinval zone = ZoneId.of("UTC+3")
val rules = zone.rules
val instant = Instant.now()
val offset = rules.getOffset(instant)

println("Fixed offset: $offset")

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

kotlinString "Fixed offset: +03:00"

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

  • функцию getStandardOffset класса ZoneRules,
    которая возвращает стандартное смещение для часового пояса
  • функцию isDaylightSavings класса ZoneRules,
    которая проверяет действует ли летнее время для указанного момента
  • класс ZoneId,
    который представляет идентификатор часового пояса
  • класс Instant,
    который представляет момент времени на временной шкале