Класс Duration
Класс Duration
представляет неизменяемую длительность времени с точностью до наносекунды.
Он используется для измерения временных интервалов и поддерживает основные арифметические операции.
Длительность может быть положительной или отрицательной и хранится как количество секунд и наносекунд.
Импорт
import java.time.Duration
Синтаксис создания
fun ofDays(days: Long): Duration
fun ofHours(hours: Long): Duration
fun ofMinutes(minutes: Long): Duration
fun ofSeconds(seconds: Long): Duration
fun ofSeconds(seconds: Long, nanoAdjustment: Long): Duration
fun ofMillis(millis: Long): Duration
fun ofNanos(nanos: Long): Duration
fun parse(text: CharSequence): Duration
fun between(start: Temporal, end: Temporal): Duration
Пример
Создадим длительность в 2 часа:
val duration = Duration.ofHours(2)
println(duration)
Результат выполнения кода:
String "PT2H"
Пример
Создадим длительность в 90 секунд:
val duration = Duration.ofSeconds(90)
println(duration)
Результат выполнения кода:
String "PT1M30S"
Пример
Парсинг длительности из строки:
val duration = Duration.parse("PT1H30M15S")
println(duration)
Результат выполнения кода:
String "PT1H30M15S"
Пример
Измерение длительности между двумя временными точками:
import java.time.LocalTime
val start = LocalTime.of(10, 30)
val end = LocalTime.of(12, 45)
val duration = Duration.between(start, end)
println(duration)
Результат выполнения кода:
String "PT2H15M"
Пример
Получение компонентов длительности:
val duration = Duration.ofHours(2).plusMinutes(30)
val hours = duration.toHours()
val minutes = duration.toMinutes()
val seconds = duration.seconds
println("Hours: $hours, Minutes: $minutes, Seconds: $seconds")
Результат выполнения кода:
String "Hours: 2, Minutes: 150, Seconds: 9000"
Пример
Арифметические операции с длительностями:
val duration1 = Duration.ofHours(2)
val duration2 = Duration.ofMinutes(30)
val sum = duration1.plus(duration2)
val diff = duration1.minus(duration2)
val multiplied = duration1.multipliedBy(3)
println("Sum: $sum, Difference: $diff, Multiplied: $multiplied")
Результат выполнения кода:
String "Sum: PT2H30M, Difference: PT1H30M, Multiplied: PT6H"
Смотрите также
-
класс
Period
,
который представляет длительность в годах, месяцах и днях -
класс
LocalTime
,
который представляет время без даты -
класс
LocalDateTime
,
который представляет дату и время -
класс
Instant
,
который представляет мгновение на временной шкале