Метод queryFrom
Статический метод queryFrom класса TemporalQueries выполняет запрос к объекту, реализующему интерфейс TemporalAccessor, для извлечения определенной информации с помощью переданного запроса. В первый параметр мы передаем объект запроса, реализующий интерфейс TemporalQuery, во второй параметр передаем временной объект, к которому применяется запрос.
Импорт
import java.time.temporal.TemporalQueries
import java.time.temporal.TemporalQuery
import java.time.temporal.TemporalAccessor
Синтаксис
static <R> R queryFrom(TemporalQuery<R> query, TemporalAccessor temporal)
Пример
Получим часовой пояс из объекта ZonedDateTime с помощью запроса zoneId:
import java.time.ZonedDateTime
import java.time.ZoneId
import java.time.temporal.TemporalQueries
val zonedDateTime = ZonedDateTime.now()
val zoneQuery = TemporalQueries.zoneId()
val zone = TemporalQueries.queryFrom(zoneQuery, zonedDateTime)
println(zone)
Результат выполнения кода:
String "Europe/Moscow"
Пример
Получим точность временного объекта с помощью запроса precision:
import java.time.LocalTime
import java.time.temporal.TemporalQueries
import java.time.temporal.ChronoUnit
val localTime = LocalTime.now()
val precisionQuery = TemporalQueries.precision()
val precision = TemporalQueries.queryFrom(precisionQuery, localTime)
println(precision)
Результат выполнения кода:
String "NANOS"
Пример
Получим локальную дату из объекта ZonedDateTime с помощью запроса localDate:
import java.time.ZonedDateTime
import java.time.LocalDate
import java.time.temporal.TemporalQueries
val zonedDateTime = ZonedDateTime.parse("2025-07-15T10:30:45+03:00[Europe/Moscow]")
val localDateQuery = TemporalQueries.localDate()
val localDate = TemporalQueries.queryFrom(localDateQuery, zonedDateTime)
println(localDate)
Результат выполнения кода:
String "2025-07-15"
Пример
Проверим поддержку часового пояса для объекта LocalDateTime:
import java.time.LocalDateTime
import java.time.temporal.TemporalQueries
val localDateTime = LocalDateTime.now()
val zoneQuery = TemporalQueries.zone()
val zone = TemporalQueries.queryFrom(zoneQuery, localDateTime)
println(zone)
Результат выполнения кода:
null