Функция getOffset
Функция getOffset класса ZoneRules возвращает смещение времени от UTC для указанного момента времени.
В параметр мы передаем объект Instant, представляющий момент времени, для которого нужно определить смещение.
Импорт
import java.time.Instant
import java.time.zone.ZoneRules
Синтаксис
fun getOffset(instant: Instant): ZoneOffset
Пример
Получим смещение для часового пояса "America/New_York" в конкретный момент времени:
val 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")
Результат выполнения кода:
String "Offset: -04:00"
Пример
Сравним смещение для летнего и зимнего времени в одном часовом поясе:
val 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")
Результат выполнения кода:
String "Summer offset: +01:00"
String "Winter offset: +00:00"
Пример
Проверим смещение для фиксированного часового пояса:
val zone = ZoneId.of("UTC+3")
val rules = zone.rules
val instant = Instant.now()
val offset = rules.getOffset(instant)
println("Fixed offset: $offset")
Результат выполнения кода:
String "Fixed offset: +03:00"
Смотрите также
-
функцию
getStandardOffsetклассаZoneRules,
которая возвращает стандартное смещение для часового пояса -
функцию
isDaylightSavingsклассаZoneRules,
которая проверяет действует ли летнее время для указанного момента -
класс
ZoneId,
который представляет идентификатор часового пояса -
класс
Instant,
который представляет момент времени на временной шкале