Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Duration

Промежуток времени в секундах и наносекундах — часы, минуты, секунды.

Доступно с: Java 8

Синтаксис

public final class Duration implements TemporalAmount, Comparable<Duration>

Примеры

Длительность между двумя моментами:

void main() {
    LocalTime start = LocalTime.of(9, 15);
    LocalTime end = LocalTime.of(17, 45);
    Duration work = Duration.between(start, end);
    IO.println(work);
    IO.println(work.toMinutes());
    IO.println(work.toHours() + "h " + work.toMinutesPart() + "m");
}

Результат:

PT8H30M
510
8h 30m

Создание и прибавление к времени:

void main() {
    Duration timeout = Duration.ofSeconds(90);
    IO.println(timeout);
    IO.println(LocalTime.of(10, 0).plus(timeout));
    IO.println(Duration.ofMinutes(45).plusHours(1).toMinutes());
}

Результат:

PT1M30S
10:01:30
105

Примечания

toString() выводит формат ISO-8601: PT8H30M — 8 часов 30 минут. Для людей собирайте строку из toHoursPart(), toMinutesPart(), toSecondsPart() (Java 9). Для дней, месяцев и лет календаря используйте Period. Замерить время работы кода можно через System.nanoTime() или Instant.now().

См. также

  • Period — Календарный промежуток в годах, месяцах и днях — например, возраст.
  • ChronoUnit.between() — Считает количество целых единиц (дней, месяцев, часов) между двумя датами или моментами.
  • Instant — Точный момент времени на временной шкале UTC — для логов, меток времени и замеров.
  • LocalTime — Время суток без даты — например, время открытия магазина.

Вопросы и ответы по теме

В учебнике

  • Даты и время — Пакет java.time — LocalDate, LocalTime, LocalDateTime, арифметика дат, Period, Duration, ChronoUnit, часовые пояса и Instant.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.