Функция getDaylightSavings
Функция getDaylightSavings класса ZoneRules возвращает смещение летнего времени для указанного момента времени.
В параметр мы передаем объект Instant, представляющий момент времени, для которого нужно определить смещение.
Импорт
import java.time.Instant
import java.time.zone.ZoneRules
Синтаксис
fun getDaylightSavings(instant: Instant): Duration
Пример
Получим смещение летнего времени для зоны "Europe/Moscow" в определенный момент:
val zone = ZoneId.of("Europe/Moscow")
val rules = zone.rules
val instant = Instant.parse("2025-07-01T12:00:00Z")
val dst = rules.getDaylightSavings(instant)
println("DST offset: $dst")
Результат выполнения кода:
String "DST offset: PT1H"
Пример
Проверим смещение летнего времени для разных моментов в году:
val zone = ZoneId.of("America/New_York")
val rules = zone.rules
val winterInstant = Instant.parse("2025-01-15T12:00:00Z")
val summerInstant = Instant.parse("2025-07-15T12:00:00Z")
val winterDst = rules.getDaylightSavings(winterInstant)
val summerDst = rules.getDaylightSavings(summerInstant)
println("Winter DST: $winterDst")
println("Summer DST: $summerDst")
Результат выполнения кода:
String "Winter DST: PT0S"
String "Summer DST: PT1H"
Пример
Сравним смещение летнего времени с общим смещением зоны:
val zone = ZoneId.of("Europe/London")
val rules = zone.rules
val instant = Instant.parse("2025-06-15T12:00:00Z")
val totalOffset = rules.getOffset(instant)
val standardOffset = rules.getStandardOffset(instant)
val dstOffset = rules.getDaylightSavings(instant)
println("Total offset: $totalOffset")
println("Standard offset: $standardOffset")
println("DST offset: $dstOffset")
Результат выполнения кода:
String "Total offset: +01:00"
String "Standard offset: Z"
String "DST offset: PT1H"
Смотрите также
-
функцию
getOffsetклассаZoneRules,
которая возвращает общее смещение для указанного момента -
функцию
getStandardOffsetклассаZoneRules,
которая возвращает стандартное смещение без учета летнего времени -
функцию
isDaylightSavingsклассаZoneRules,
которая проверяет действует ли летнее время для указанного момента -
класс
ZoneId,
который представляет идентификатор часовой зоны