Статический метод offset

Статический метод offset класса TemporalQueries возвращает запрос, который извлекает смещение временной зоны (ZoneOffset) из объектов, реализующих интерфейс TemporalAccessor. Этот метод полезен для получения информации о смещении от таких объектов как ZonedDateTime, OffsetDateTime и OffsetTime.

Импорт

kotlinimport java.time.temporal.TemporalQueries

Синтаксис

kotlinstatic fun offset(): TemporalQuery<ZoneOffset>

Пример

Получим смещение из объекта ZonedDateTime:

kotlinimport java.time.ZonedDateTime
import java.time.ZoneId
import java.time.temporal.TemporalQueries
import java.time.ZoneOffset

val zonedDateTime = ZonedDateTime.of(2025, 7, 15, 10, 30, 0, 0, ZoneId.of("Europe/Moscow"))
val offsetQuery = TemporalQueries.offset()
val offset = zonedDateTime.query(offsetQuery)
println(offset)

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

kotlinZoneOffset "+03:00"

Пример

Получим смещение из объекта OffsetDateTime:

kotlinimport java.time.OffsetDateTime
import java.time.ZoneOffset
import java.time.temporal.TemporalQueries

val offsetDateTime = OffsetDateTime.of(2025, 12, 31, 23, 59, 0, 0, ZoneOffset.ofHours(5))
val offset = offsetDateTime.query(TemporalQueries.offset())
println("Offset: " + offset)

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

kotlinString "Offset: +05:00"

Пример

Проверим наличие смещения у различных временных объектов:

kotlinimport java.time.LocalDateTime
import java.time.OffsetTime
import java.time.ZoneOffset
import java.time.temporal.TemporalQueries

val localDateTime = LocalDateTime.now()
val offsetTime = OffsetTime.of(10, 30, 0, 0, ZoneOffset.of("+02:00"))

val query = TemporalQueries.offset()
val offset1 = localDateTime.query(query)
val offset2 = offsetTime.query(query)

println("LocalDateTime offset: " + offset1)
println("OffsetTime offset: " + offset2)

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

kotlinString "LocalDateTime offset: null"
String "OffsetTime offset: +02:00"

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

  • статический метод zoneId класса TemporalQueries,
    который извлекает идентификатор зоны из временного объекта
  • класс ZoneOffset,
    который представляет смещение временной зоны
  • класс OffsetDateTime,
    который представляет дату и время со смещением
  • метод getOffset класса ZonedDateTime,
    который возвращает смещение зоны