Класс ZoneOffset

Класс ZoneOffset представляет фиксированное смещение временной зоны от UTC/Greenwich в формате +HH:MM или -HH:MM. Это неизменяемый класс, который хранит смещение в секундах и предоставляет методы для создания и работы со смещениями временных зон.

Импорт

kotlinimport java.time.ZoneOffset

Синтаксис

kotlin// Создание смещения через фабричные методы
fun of(offsetId: String): ZoneOffset
fun ofHours(hours: Int): ZoneOffset
fun ofHoursMinutes(hours: Int, minutes: Int): ZoneOffset
fun ofHoursMinutesSeconds(hours: Int, minutes: Int, seconds: Int): ZoneOffset
fun ofTotalSeconds(totalSeconds: Int): ZoneOffset

// Получение констант
val UTC: ZoneOffset
val MIN: ZoneOffset
val MAX: ZoneOffset

// Получение информации о смещении
fun getTotalSeconds(): Int
fun getId(): String

Пример

Создадим смещение для UTC+3:

kotlinval offset = ZoneOffset.ofHours(3)
println(offset)

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

kotlinString "+03:00"

Пример

Создадим смещение с помощью строки:

kotlinval offset1 = ZoneOffset.of("+05:00")
val offset2 = ZoneOffset.of("-02:30")

println("Offset 1: $offset1")
println("Offset 2: $offset2")

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

kotlinString "Offset 1: +05:00"
String "Offset 2: -02:30"

Пример

Создадим смещение с точностью до минут и секунд:

kotlinval offset1 = ZoneOffset.ofHoursMinutes(2, 30)
val offset2 = ZoneOffset.ofHoursMinutesSeconds(5, 45, 15)

println("Offset 1: $offset1")
println("Offset 2: $offset2")

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

kotlinString "Offset 1: +02:30"
String "Offset 2: +05:45:15"

Пример

Получим информацию о смещении:

kotlinval offset = ZoneOffset.of("+03:45")

val totalSeconds = offset.getTotalSeconds()
val id = offset.getId()

println("Total seconds: $totalSeconds")
println("ID: $id")

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

kotlinString "Total seconds: 13500"
String "ID: +03:45"

Пример

Используем константы класса:

kotlinprintln("UTC: ${ZoneOffset.UTC}")
println("MIN: ${ZoneOffset.MIN}")
println("MAX: ${ZoneOffset.MAX}")

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

kotlinString "UTC: Z"
String "MIN: -18:00"
String "MAX: +18:00"

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

  • класс ZoneId,
    который представляет идентификатор временной зоны
  • класс ZonedDateTime,
    который представляет дату и время с временной зоной
  • класс OffsetDateTime,
    который представляет дату и время со смещением
  • класс OffsetTime,
    который представляет время со смещением