Статический метод precision
Статический метод precision
класса TemporalQueries
возвращает запрос, который можно использовать для получения минимальной единицы времени (точности), поддерживаемой временным объектом. Этот метод возвращает объект TemporalQuery
, который при применении к временному объекту возвращает объект TemporalUnit
, представляющий наименьшую единицу времени, которую может содержать данный объект.
Импорт
import java.time.temporal.TemporalQueries
import java.time.temporal.TemporalUnit
Синтаксис
static fun precision(): TemporalQuery<TemporalUnit>
Пример
Получим точность для различных временных объектов:
import java.time.LocalDate
import java.time.LocalTime
import java.time.LocalDateTime
import java.time.temporal.TemporalQueries
import java.time.temporal.TemporalUnit
val date = LocalDate.of(2025, 12, 31)
val time = LocalTime.of(14, 30, 45)
val dateTime = LocalDateTime.of(date, time)
val datePrecision = date.query(TemporalQueries.precision())
val timePrecision = time.query(TemporalQueries.precision())
val dateTimePrecision = dateTime.query(TemporalQueries.precision())
println("Date precision: " + datePrecision)
println("Time precision: " + timePrecision)
println("DateTime precision: " + dateTimePrecision)
Результат выполнения кода:
String "Date precision: Days"
String "Time precision: Nanos"
String "DateTime precision: Nanos"
Пример
Сравним точность разных временных типов:
import java.time.Instant
import java.time.ZonedDateTime
import java.time.temporal.TemporalQueries
import java.time.temporal.ChronoUnit
val instant = Instant.now()
val zonedDateTime = ZonedDateTime.now()
val instantPrecision = instant.query(TemporalQueries.precision())
val zonedPrecision = zonedDateTime.query(TemporalQueries.precision())
println("Instant precision: " + instantPrecision)
println("ZonedDateTime precision: " + zonedPrecision)
println("Is instant precision nanoseconds: " + (instantPrecision == ChronoUnit.NANOS))
Результат выполнения кода:
String "Instant precision: Nanos"
String "ZonedDateTime precision: Nanos"
String "Is instant precision nanoseconds: true"
Пример
Используем полученную точность для проверки поддерживаемых операций:
import java.time.LocalDate
import java.time.temporal.TemporalQueries
import java.time.temporal.ChronoUnit
val date = LocalDate.of(2025, 7, 15)
val precision = date.query(TemporalQueries.precision())
if (precision == ChronoUnit.DAYS) {
println("This temporal object supports day-based operations")
} else {
println("This temporal object does not support day-based operations")
}
val canAddHours = date.isSupported(ChronoUnit.HOURS)
println("Can add hours: " + canAddHours)
Результат выполнения кода:
String "This temporal object supports day-based operations"
String "Can add hours: false"
Смотрите также
-
метод
zoneId
классаTemporalQueries
,
который возвращает запрос для получения идентификатора часового пояса -
метод
chronology
классаTemporalQueries
,
который возвращает запрос для получения хронологии -
метод
offset
классаTemporalQueries
,
который возвращает запрос для получения смещения времени -
метод
localDate
классаTemporalQueries
,
который возвращает запрос для получения локальной даты