Функция nextTransition
Функция nextTransition класса ZoneRules возвращает следующий переход между стандартным и летним временем для указанного момента времени.
В параметр мы передаем момент времени, начиная с которого нужно найти следующий переход.
Импорт
import java.time.Instant
import java.time.zone.ZoneRules
Синтаксис
fun nextTransition(instant: Instant): ZoneOffsetTransition?
Пример
Получим следующий переход для часового пояса "America/New_York":
val zone = ZoneId.of("America/New_York")
val rules = zone.rules
val currentInstant = Instant.now()
val nextTransition = rules.nextTransition(currentInstant)
if (nextTransition != null) {
println("Next transition: $nextTransition")
println("DateTime: ${nextTransition.dateTimeBefore}")
println("Offset before: ${nextTransition.offsetBefore}")
println("Offset after: ${nextTransition.offsetAfter}")
} else {
println("No future transitions")
}
Результат выполнения кода:
String "Next transition: Transition[Gap at 2025-03-09T02:00-05:00 to -04:00]"
Пример
Проверим наличие переходов для UTC:
val utcZone = ZoneId.of("UTC")
val utcRules = utcZone.rules
val instant = Instant.parse("2025-01-01T00:00:00Z")
val transition = utcRules.nextTransition(instant)
println("Has transitions: ${transition != null}")
Результат выполнения кода:
String "Has transitions: false"
Пример
Получим все будущие переходы для определенного часового пояса:
val londonZone = ZoneId.of("Europe/London")
val londonRules = londonZone.rules
var currentInstant = Instant.now()
var transition: ZoneOffsetTransition?
println("Future transitions for Europe/London:")
for (i in 1..5) {
transition = londonRules.nextTransition(currentInstant)
if (transition == null) break
println("${i}. ${transition.dateTimeBefore} " +
"${transition.offsetBefore} -> ${transition.offsetAfter}")
currentInstant = transition.instant
}
Результат выполнения кода:
String "Future transitions for Europe/London:"
String "1. 2025-03-30T01:00Z Z -> +01:00"
String "2. 2025-10-26T01:00Z +01:00 -> Z"
Смотрите также
-
функцию
previousTransitionклассаZoneRules,
которая возвращает предыдущий переход -
функцию
getTransitionsклассаZoneRules,
которая возвращает все переходы -
функцию
isDaylightSavingsклассаZoneRules,
которая проверяет действует ли летнее время -
класс
ZoneId,
который представляет идентификатор часового пояса