Класс ChronoUnit

Класс ChronoUnit представляет стандартные единицы измерения времени, такие как дни, часы, минуты и другие. Эти единицы используются для выполнения операций сложения и вычитания с объектами даты и времени, а также для вычисления разницы между ними. Каждая единица имеет свою продолжительность и может быть основана на времени или дате.

Импорт

kotlinimport java.time.temporal.ChronoUnit

Синтаксис

kotlin// Получение единицы измерения по имени
ChronoUnit.valueOf(name: String): ChronoUnit

// Получение всех доступных единиц измерения
ChronoUnit.values(): Array<ChronoUnit>

// Получение продолжительности единицы измерения
unit.getDuration(): Duration

// Проверка, основана ли единица на дате
unit.isDateBased(): Boolean

// Проверка, основана ли единица на времени
unit.isTimeBased(): Boolean

// Добавление единицы к временному объекту
unit.addTo(temporal: Temporal, amount: Long): Temporal

// Вычисление разницы между двумя временными объектами
unit.between(temporal1: Temporal, temporal2: Temporal): Long

Пример

Добавим 5 дней к текущей дате:

kotlinimport java.time.LocalDate
import java.time.temporal.ChronoUnit

val currentDate = LocalDate.now()
val futureDate = ChronoUnit.DAYS.addTo(currentDate, 5)
println(futureDate)

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

kotlinString "2025-09-16"

Пример

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

kotlinimport java.time.LocalDateTime
import java.time.temporal.ChronoUnit

val start = LocalDateTime.of(2025, 9, 11, 10, 30)
val end = LocalDateTime.of(2025, 9, 11, 15, 45)
val hoursDiff = ChronoUnit.HOURS.between(start, end)
println(hoursDiff)

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

kotlinLong 5

Пример

Проверим, является ли единица измерения основанной на дате:

kotlinimport java.time.temporal.ChronoUnit

val isDaysDateBased = ChronoUnit.DAYS.isDateBased()
val isHoursDateBased = ChronoUnit.HOURS.isDateBased()

println("DAYS is date based: $isDaysDateBased")
println("HOURS is date based: $isHoursDateBased")

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

kotlinString "DAYS is date based: true"
String "HOURS is date based: false"

Пример

Получим продолжительность единицы измерения:

kotlinimport java.time.temporal.ChronoUnit

val minutesDuration = ChronoUnit.MINUTES.getDuration()
val daysDuration = ChronoUnit.DAYS.getDuration()

println("Minutes duration: $minutesDuration")
println("Days duration: $daysDuration")

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

kotlinString "Minutes duration: PT1M"
String "Days duration: PT24H"

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

  • класс Duration,
    который представляет продолжительность времени
  • класс Period,
    который представляет период между датами
  • метод plusDays класса LocalDate,
    который добавляет дни к дате