Класс TemporalQueries

Класс TemporalQueries содержит набор предопределенных запросов для извлечения различных компонентов из объектов временных API. Каждый метод возвращает реализацию интерфейса TemporalQuery, который можно использовать для получения информации о временном объекте.

Импорт

kotlinimport java.time.temporal.TemporalQueries

Синтаксис

kotlin// Запрос часового пояса
static TemporalQuery<ZoneId> zoneId()

// Запрос хронологии
static TemporalQuery<Chronology> chronology()

// Запрос точности
static TemporalQuery<TemporalUnit> precision()

// Запрос смещения
static TemporalQuery<ZoneOffset> offset()

// Запрос зоны (часовой пояс или смещение)
static TemporalQuery<ZoneId> zone()

// Запрос даты
static TemporalQuery<LocalDate> localDate()

// Запрос времени
static TemporalQuery<LocalTime> localTime()

Пример

Получим информацию о часовом поясе из объекта ZonedDateTime:

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

val zonedDateTime = ZonedDateTime.now()
val zoneId = zonedDateTime.query(TemporalQueries.zoneId())
println("Zone ID: $zoneId")

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

kotlinString "Zone ID: Europe/Moscow"

Пример

Извлечем компонент даты из объекта ZonedDateTime:

kotlinimport java.time.ZonedDateTime
import java.time.LocalDate
import java.time.temporal.TemporalQueries

val zonedDateTime = ZonedDateTime.now()
val localDate = zonedDateTime.query(TemporalQueries.localDate())
println("Local date: $localDate")

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

kotlinString "Local date: 2025-09-11"

Пример

Получим информацию о точности временного объекта:

kotlinimport java.time.LocalDateTime
import java.time.temporal.TemporalQueries
import java.time.temporal.ChronoUnit

val localDateTime = LocalDateTime.now()
val precision = localDateTime.query(TemporalQueries.precision())
println("Precision: $precision")
println("Is days-based: ${precision.isDateBased()}")

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

kotlinString "Precision: Nanos"
String "Is days-based: false"

Пример

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

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

val offsetDateTime = OffsetDateTime.now()
val zoneOffset = offsetDateTime.query(TemporalQueries.offset())
println("Zone offset: $zoneOffset")

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

kotlinString "Zone offset: +03:00"

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

  • класс ZonedDateTime,
    который представляет дату и время с часовым поясом
  • класс LocalDateTime,
    который представляет дату и время без часового пояса
  • класс ZoneId,
    который представляет идентификатор часового пояса
  • класс ZoneOffset,
    который представляет смещение от UTC