Константа OFFSET_SECONDS
Константа OFFSET_SECONDS класса ChronoField представляет смещение временной зоны в секундах относительно UTC (Coordinated Universal Time).
Это поле используется для получения и установки смещения зоны в объектах временных типов, поддерживающих временные зоны, таких как ZonedDateTime и OffsetDateTime.
Импорт
import java.time.temporal.ChronoField
Синтаксис
ChronoField.OFFSET_SECONDS
Пример
Получим смещение временной зоны в секундах для объекта ZonedDateTime:
import java.time.ZonedDateTime
import java.time.temporal.ChronoField
val zonedDateTime = ZonedDateTime.now()
val offsetSeconds = zonedDateTime.get(ChronoField.OFFSET_SECONDS)
println("Offset in seconds: $offsetSeconds")
Результат выполнения кода:
String "Offset in seconds: 10800"
Пример
Преобразуем смещение из секунд в часы и минуты:
import java.time.ZoneOffset
val totalSeconds = 10800
val zoneOffset = ZoneOffset.ofTotalSeconds(totalSeconds)
val hours = totalSeconds / 3600
val minutes = (totalSeconds % 3600) / 60
println("Offset: $hours hours, $minutes minutes")
println("ZoneOffset: $zoneOffset")
Результат выполнения кода:
String "Offset: 3 hours, 0 minutes"
String "ZoneOffset: +03:00"
Пример
Используем OFFSET_SECONDS с объектом OffsetDateTime:
import java.time.OffsetDateTime
import java.time.ZoneOffset
import java.time.temporal.ChronoField
val offsetDateTime = OffsetDateTime.now()
val offsetSeconds = offsetDateTime.get(ChronoField.OFFSET_SECONDS)
val zoneOffset = ZoneOffset.ofTotalSeconds(offsetSeconds)
println("Current offset: $zoneOffset")
Результат выполнения кода:
String "Current offset: +03:00"
Пример
Проверим, поддерживает ли временной объект поле OFFSET_SECONDS:
import java.time.LocalDateTime
import java.time.OffsetDateTime
import java.time.temporal.ChronoField
val offsetDateTime = OffsetDateTime.now()
val localDateTime = LocalDateTime.now()
val supportsOffset1 = offsetDateTime.isSupported(ChronoField.OFFSET_SECONDS)
val supportsOffset2 = localDateTime.isSupported(ChronoField.OFFSET_SECONDS)
println("OffsetDateTime supports OFFSET_SECONDS: $supportsOffset1")
println("LocalDateTime supports OFFSET_SECONDS: $supportsOffset2")
Результат выполнения кода:
String "OffsetDateTime supports OFFSET_SECONDS: true"
String "LocalDateTime supports OFFSET_SECONDS: false"
Смотрите также
-
класс
ZoneOffset,
который представляет смещение временной зоны -
класс
ZonedDateTime,
который представляет дату и время с временной зоной -
класс
OffsetDateTime,
который представляет дату и время со смещением -
константу
INSTANT_SECONDSклассаChronoField,
которая представляет мгновенное время в секундах