Функция getTransition
Функция getTransition
класса ZoneRules
возвращает переход правил времени для указанного момента времени.
В параметр мы передаем объект Instant
, представляющий момент времени, для которого нужно найти переход.
Функция возвращает объект ZoneOffsetTransition
или null
, если перехода в указанный момент не существует.
Импорт
import java.time.Instant
import java.time.zone.ZoneRules
import java.time.zone.ZoneOffsetTransition
Синтаксис
fun getTransition(instant: Instant): ZoneOffsetTransition?
Пример
Получим переход правил времени для часового пояса "Europe/Moscow" в момент перехода на летнее время в 2025 году:
val zone = java.time.ZoneId.of("Europe/Moscow")
val rules = zone.rules
val instant = Instant.parse("2025-03-30T01:00:00Z")
val transition = rules.getTransition(instant)
println(transition)
Результат выполнения кода:
ZoneOffsetTransition [2025-03-30T01:00+03:00 to +04:00]
Пример
Проверим наличие перехода правил времени для момента, когда перехода не существует:
val zone = java.time.ZoneId.of("Europe/London")
val rules = zone.rules
val instant = Instant.parse("2025-06-15T12:00:00Z")
val transition = rules.getTransition(instant)
println("Transition exists: ${transition != null}")
Результат выполнения кода:
String "Transition exists: false"
Пример
Получим детальную информацию о переходе правил времени:
val zone = java.time.ZoneId.of("America/New_York")
val rules = zone.rules
val instant = Instant.parse("2025-03-09T06:00:00Z")
val transition = rules.getTransition(instant)
if (transition != null) {
val duration = transition.duration
val instantBefore = transition.instantBefore
val instantAfter = transition.instantAfter
val offsetBefore = transition.offsetBefore
val offsetAfter = transition.offsetAfter
println("Duration: $duration")
println("Instant before: $instantBefore")
println("Instant after: $instantAfter")
println("Offset before: $offsetBefore")
println("Offset after: $offsetAfter")
}
Результат выполнения кода:
String "Duration: PT1H"
String "Instant before: 2025-03-09T06:00:00Z"
String "Instant after: 2025-03-09T07:00:00Z"
String "Offset before: -05:00"
String "Offset after: -04:00"
Смотрите также
-
функцию
getTransitions
классаZoneRules
,
которая возвращает все переходы правил времени -
функцию
getOffset
классаZoneRules
,
которая возвращает смещение для указанного момента времени -
функцию
isDaylightSavings
классаZoneRules
,
которая проверяет действует ли летнее время в указанный момент