Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
1137 of 1310 menu
Бесплатный курс: Практика на Реальных Проектах и Работы в Портфолио! Мы уже начали, но можно присоединится! Жми для записи!

Класс TemporalUnit

Интерфейс TemporalUnit представляет единицу измерения времени в Java Time API. Он определяет такие единицы как секунды, минуты, часы, дни, недели, месяцы и годы. Этот интерфейс предоставляет методы для получения длительности единицы, проверки типа единицы (дата или время), а также для добавления единицы к временному объекту и вычисления разницы между временными объектами.

Импорт

import java.time.temporal.TemporalUnit import java.time.temporal.ChronoUnit

Синтаксис

interface TemporalUnit { fun getDuration(): Duration fun isDurationEstimated(): Boolean fun isDateBased(): Boolean fun isTimeBased(): Boolean fun <R : Temporal> addTo(temporal: R, amount: Long): R fun between(temporal1Inclusive: Temporal, temporal2Exclusive: Temporal): Long }

Пример

Получим длительность различных временных единиц:

val secondDuration = ChronoUnit.SECONDS.duration val hourDuration = ChronoUnit.HOURS.duration val dayDuration = ChronoUnit.DAYS.duration println("Second duration: $secondDuration") println("Hour duration: $hourDuration") println("Day duration: $dayDuration")

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

String "Second duration: PT1S" String "Hour duration: PT1H" String "Day duration: PT24H"

Пример

Проверим тип временных единиц:

val isSecondsTimeBased = ChronoUnit.SECONDS.isTimeBased val isDaysDateBased = ChronoUnit.DAYS.isDateBased val isMonthsDateBased = ChronoUnit.MONTHS.isDateBased println("Seconds time-based: $isSecondsTimeBased") println("Days date-based: $isDaysDateBased") println("Months date-based: $isMonthsDateBased")

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

String "Seconds time-based: true" String "Days date-based: true" String "Months date-based: true"

Пример

Добавим временные единицы к дате:

import java.time.LocalDate val date = LocalDate.of(2025, 6, 15) val newDateDays = ChronoUnit.DAYS.addTo(date, 10) val newDateMonths = ChronoUnit.MONTHS.addTo(date, 2) println("Original date: $date") println("After adding 10 days: $newDateDays") println("After adding 2 months: $newDateMonths")

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

String "Original date: 2025-06-15" String "After adding 10 days: 2025-06-25" String "After adding 2 months: 2025-08-15"

Пример

Вычислим разницу между датами в различных единицах:

val date1 = LocalDate.of(2025, 1, 1) val date2 = LocalDate.of(2025, 12, 31) val daysBetween = ChronoUnit.DAYS.between(date1, date2) val monthsBetween = ChronoUnit.MONTHS.between(date1, date2) val yearsBetween = ChronoUnit.YEARS.between(date1, date2) println("Days between: $daysBetween") println("Months between: $monthsBetween") println("Years between: $yearsBetween")

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

String "Days between: 364" String "Months between: 11" String "Years between: 0"

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

  • класс ChronoUnit,
    который содержит стандартные реализации TemporalUnit
  • класс Duration,
    который представляет длительность времени
  • интерфейс TemporalAmount,
    который представляет количество времени