АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
1126 of 1310 menu
Бесплатный тренинг по JavaScript: работа с Drag-and-Drop. Начало 2 октября. Жми для записи!

Статический метод 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,
    который возвращает запрос для получения локальной даты