Метод normalized
Метод normalized класса ZoneId проверяет, является ли текущий объект ZoneOffset и, если это так, возвращает его.
Если объект не является ZoneOffset, метод возвращает его без изменений.
Этот метод полезен, когда необходимо гарантировать, что ZoneId может быть безопасно использован в APIs, требующих ZoneOffset.
Импорт
kotlinimport java.time.ZoneId
import java.time.ZoneOffset
Синтаксис
kotlinfun normalized(): ZoneId
Пример
Нормализуем ZoneOffset UTC:
kotlinval zoneOffset = ZoneOffset.UTC
val normalizedZone = zoneOffset.normalized()
println(normalizedZone)
Результат выполнения кода:
kotlinString "Z"
Пример
Нормализуем обычный ZoneId (не ZoneOffset):
kotlinval zoneId = ZoneId.of("Europe/London")
val normalizedZone = zoneId.normalized()
println(normalizedZone)
Результат выполнения кода:
kotlinString "Europe/London"
Пример
Сравним поведение normalized для разных типов ZoneId:
kotlinval offsetId = ZoneId.of("+02:00")
val regionId = ZoneId.of("Europe/Paris")
val normalizedOffset = offsetId.normalized()
val normalizedRegion = regionId.normalized()
println("Original offset: $offsetId, Normalized: $normalizedOffset")
println("Original region: $regionId, Normalized: $normalizedRegion")
Результат выполнения кода:
kotlinString "Original offset: +02:00, Normalized: +02:00"
String "Original region: Europe/Paris, Normalized: Europe/Paris"
Пример
Проверим, что нормализованный ZoneOffset можно безопасно использовать в методах, требующих ZoneOffset:
kotlinval zoneId = ZoneId.of("+05:00")
val normalized = zoneId.normalized()
if (normalized is ZoneOffset) {
val totalSeconds = normalized.totalSeconds
println("Total seconds: $totalSeconds")
} else {
println("Not a ZoneOffset")
}
Результат выполнения кода:
kotlinString "Total seconds: 18000"
Смотрите также
-
функцию
ofклассаZoneId,
которая создает ZoneId из строкового идентификатора -
функцию
systemDefaultклассаZoneId,
которая возвращает системный часовой пояс по умолчанию -
функцию
ofклассаZoneOffset,
которая создает ZoneOffset из смещения -
класс
ZonedDateTime,
который представляет дату и время с часовым поясом