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