Метод normalized
Метод normalized класса ZoneId проверяет, является ли текущий объект ZoneOffset и, если это так, возвращает его.
Если объект не является ZoneOffset, метод возвращает его без изменений.
Этот метод полезен, когда необходимо гарантировать, что ZoneId может быть безопасно использован в APIs, требующих ZoneOffset.
Импорт
import java.time.ZoneId
import java.time.ZoneOffset
Синтаксис
fun normalized(): ZoneId
Пример
Нормализуем ZoneOffset UTC:
val zoneOffset = ZoneOffset.UTC
val normalizedZone = zoneOffset.normalized()
println(normalizedZone)
Результат выполнения кода:
String "Z"
Пример
Нормализуем обычный ZoneId (не ZoneOffset):
val zoneId = ZoneId.of("Europe/London")
val normalizedZone = zoneId.normalized()
println(normalizedZone)
Результат выполнения кода:
String "Europe/London"
Пример
Сравним поведение normalized для разных типов ZoneId:
val 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")
Результат выполнения кода:
String "Original offset: +02:00, Normalized: +02:00"
String "Original region: Europe/Paris, Normalized: Europe/Paris"
Пример
Проверим, что нормализованный ZoneOffset можно безопасно использовать в методах, требующих ZoneOffset:
val 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")
}
Результат выполнения кода:
String "Total seconds: 18000"
Смотрите также
-
функцию
ofклассаZoneId,
которая создает ZoneId из строкового идентификатора -
функцию
systemDefaultклассаZoneId,
которая возвращает системный часовой пояс по умолчанию -
функцию
ofклассаZoneOffset,
которая создает ZoneOffset из смещения -
класс
ZonedDateTime,
который представляет дату и время с часовым поясом