Класс ZoneId
Класс ZoneId представляет идентификатор часового пояса, такой как "Europe/Moscow" или "America/New_York".
Он используется для определения правил смещения времени от UTC/Greenwich и обеспечивает конвертацию между локальным временем и временем UTC.
В первый параметр метода of мы передаем строковый идентификатор часового пояса, во второй параметр метода ofOffset передаем префикс и смещение.
Импорт
import java.time.ZoneId
Синтаксис
// Получение ZoneId по идентификатору
fun of(zoneId: String): ZoneId
// Получение системного часового пояса по умолчанию
fun systemDefault(): ZoneId
// Получение ZoneId из смещения
fun ofOffset(prefix: String, offset: ZoneOffset): ZoneId
// Получение всех доступных идентификаторов часовых поясов
fun getAvailableZoneIds(): Set<String>
Пример
Получим системный часовой пояс по умолчанию:
val defaultZone = ZoneId.systemDefault()
println(defaultZone)
Результат выполнения кода:
String "Europe/Moscow"
Пример
Создадим ZoneId для Нью-Йорка:
val newYorkZone = ZoneId.of("America/New_York")
println(newYorkZone)
Результат выполнения кода:
String "America/New_York"
Пример
Получим все доступные идентификаторы часовых поясов:
val availableZones = ZoneId.getAvailableZoneIds()
val firstFive = availableZones.take(5)
println(firstFive)
Результат выполнения кода:
Array<String> ['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara']
Пример
Создадим ZoneId из смещения UTC+3:
import java.time.ZoneOffset
val offsetZone = ZoneId.ofOffset("UTC", ZoneOffset.ofHours(3))
println(offsetZone)
Результат выполнения кода:
String "UTC+03:00"
Пример
Получим правила для часового пояса:
val zone = ZoneId.of("Europe/London")
val rules = zone.getRules()
val offset = rules.getOffset(java.time.Instant.now())
println("Zone: $zone")
println("Current offset: $offset")
Результат выполнения кода:
String "Zone: Europe/London"
String "Current offset: +01:00"
Смотрите также
-
класс
ZonedDateTime,
который представляет дату и время с часовым поясом -
класс
ZoneOffset,
который представляет фиксированное смещение от UTC -
метод
atZoneклассаLocalDateTime,
который преобразует локальную дату-время в zoned date-time -
метод
atZoneклассаInstant,
который преобразует мгновение во времени в zoned date-time