Класс ZoneId

Класс ZoneId представляет идентификатор часового пояса, такой как "Europe/Moscow" или "America/New_York". Он используется для определения правил смещения времени от UTC/Greenwich и обеспечивает конвертацию между локальным временем и временем UTC. В первый параметр метода of мы передаем строковый идентификатор часового пояса, во второй параметр метода ofOffset передаем префикс и смещение.

Импорт

kotlinimport java.time.ZoneId

Синтаксис

kotlin// Получение ZoneId по идентификатору
fun of(zoneId: String): ZoneId
kotlin// Получение системного часового пояса по умолчанию
fun systemDefault(): ZoneId
kotlin// Получение ZoneId из смещения
fun ofOffset(prefix: String, offset: ZoneOffset): ZoneId
kotlin// Получение всех доступных идентификаторов часовых поясов
fun getAvailableZoneIds(): Set<String>

Пример

Получим системный часовой пояс по умолчанию:

kotlinval defaultZone = ZoneId.systemDefault()
println(defaultZone)

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

kotlinString "Europe/Moscow"

Пример

Создадим ZoneId для Нью-Йорка:

kotlinval newYorkZone = ZoneId.of("America/New_York")
println(newYorkZone)

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

kotlinString "America/New_York"

Пример

Получим все доступные идентификаторы часовых поясов:

kotlinval availableZones = ZoneId.getAvailableZoneIds()
val firstFive = availableZones.take(5)
println(firstFive)

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

kotlinArray<String> ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara']

Пример

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

kotlinimport java.time.ZoneOffset

val offsetZone = ZoneId.ofOffset("UTC", ZoneOffset.ofHours(3))
println(offsetZone)

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

kotlinString "UTC+03:00"

Пример

Получим правила для часового пояса:

kotlinval zone = ZoneId.of("Europe/London")
val rules = zone.getRules()
val offset = rules.getOffset(java.time.Instant.now())

println("Zone: $zone")
println("Current offset: $offset")

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

kotlinString "Zone: Europe/London"
String "Current offset: +01:00"

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

  • класс ZonedDateTime,
    который представляет дату и время с часовым поясом
  • класс ZoneOffset,
    который представляет фиксированное смещение от UTC
  • метод atZone класса LocalDateTime,
    который преобразует локальную дату-время в zoned date-time
  • метод atZone класса Instant,
    который преобразует мгновение во времени в zoned date-time