АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
1184 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция 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,
    которая проверяет действует ли летнее время в указанный момент