Функция isValidOffset

Функция isValidOffset класса ZoneRules проверяет, является ли переданное смещение валидным для указанных локальных даты и времени. В первый параметр мы передаем локальную дату и время, во второй параметр передаем смещение для проверки.

Импорт

kotlinimport java.time.LocalDateTime
import java.time.ZoneOffset
import java.time.zone.ZoneRules

Синтаксис

kotlinfun isValidOffset(localDateTime: LocalDateTime, offset: ZoneOffset): Boolean

Пример

Проверим валидность смещения UTC+3 для даты и времени "2025-06-15T14:30:00" в часовом поясе Europe/Moscow:

kotlinval zone = java.time.ZoneId.of("Europe/Moscow")
val rules = zone.rules
val dateTime = LocalDateTime.parse("2025-06-15T14:30:00")
val offset = ZoneOffset.ofHours(3)

val isValid = rules.isValidOffset(dateTime, offset)
println("Is valid offset: $isValid")

Результат выполнения кода:

kotlinString "Is valid offset: true"

Пример

Проверим невалидное смещение UTC+5 для той же даты и времени:

kotlinval zone = java.time.ZoneId.of("Europe/Moscow")
val rules = zone.rules
val dateTime = LocalDateTime.parse("2025-06-15T14:30:00")
val invalidOffset = ZoneOffset.ofHours(5)

val isValid = rules.isValidOffset(dateTime, invalidOffset)
println("Is valid offset: $isValid")

Результат выполнения кода:

kotlinString "Is valid offset: false"

Пример

Проверим валидность смещения во время перехода на летнее время:

kotlinval zone = java.time.ZoneId.of("America/New_York")
val rules = zone.rules
val dateTime = LocalDateTime.parse("2025-03-09T02:30:00")
val offset = ZoneOffset.ofHours(-4)

val isValid = rules.isValidOffset(dateTime, offset)
println("Is valid offset: $isValid")

Результат выполнения кода:

kotlinString "Is valid offset: false"

Смотрите также

  • функцию getOffset класса ZoneRules,
    которая возвращает смещение для указанной даты и времени
  • функцию isDaylightSavings класса ZoneRules,
    которая проверяет действует ли летнее время
  • класс ZoneOffset,
    который представляет смещение часового пояса
  • класс ZonedDateTime,
    который представляет дату и время с часовым поясом