Класс TemporalQueries
Класс TemporalQueries содержит набор предопределенных запросов для извлечения различных компонентов из объектов временных API.
Каждый метод возвращает реализацию интерфейса TemporalQuery, который можно использовать для получения информации о временном объекте.
Импорт
import java.time.temporal.TemporalQueries
Синтаксис
// Запрос часового пояса
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:
import 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")
Результат выполнения кода:
String "Zone ID: Europe/Moscow"
Пример
Извлечем компонент даты из объекта ZonedDateTime:
import 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")
Результат выполнения кода:
String "Local date: 2025-09-11"
Пример
Получим информацию о точности временного объекта:
import 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()}")
Результат выполнения кода:
String "Precision: Nanos"
String "Is days-based: false"
Пример
Извлечем смещение из объекта OffsetDateTime:
import 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")
Результат выполнения кода:
String "Zone offset: +03:00"
Смотрите также
-
класс
ZonedDateTime,
который представляет дату и время с часовым поясом -
класс
LocalDateTime,
который представляет дату и время без часового пояса -
класс
ZoneId,
который представляет идентификатор часового пояса -
класс
ZoneOffset,
который представляет смещение от UTC