Класс ChronoUnit
Класс ChronoUnit
представляет стандартные единицы измерения времени, такие как дни, часы, минуты и другие.
Эти единицы используются для выполнения операций сложения и вычитания с объектами даты и времени, а также для вычисления разницы между ними.
Каждая единица имеет свою продолжительность и может быть основана на времени или дате.
Импорт
import java.time.temporal.ChronoUnit
Синтаксис
// Получение единицы измерения по имени
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 дней к текущей дате:
import java.time.LocalDate
import java.time.temporal.ChronoUnit
val currentDate = LocalDate.now()
val futureDate = ChronoUnit.DAYS.addTo(currentDate, 5)
println(futureDate)
Результат выполнения кода:
String "2025-09-16"
Пример
Вычислим разницу в часах между двумя моментами времени:
import 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)
Результат выполнения кода:
Long 5
Пример
Проверим, является ли единица измерения основанной на дате:
import 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")
Результат выполнения кода:
String "DAYS is date based: true"
String "HOURS is date based: false"
Пример
Получим продолжительность единицы измерения:
import java.time.temporal.ChronoUnit
val minutesDuration = ChronoUnit.MINUTES.getDuration()
val daysDuration = ChronoUnit.DAYS.getDuration()
println("Minutes duration: $minutesDuration")
println("Days duration: $daysDuration")
Результат выполнения кода:
String "Minutes duration: PT1M"
String "Days duration: PT24H"