Из Duration
класс в новом JSR 310 date API (пакет java.time), доступный в Java 8 и более поздних версиях, javadoc говорит:
Этот класс моделирует количество или количество времени в секундах и наносекунд. Доступ к нему можно использовать с использованием других единиц, основанных на длительности, таких как как минуты и часы. Кроме того, можно использовать блок DAYS и обрабатывается как ровно 24 часа, таким образом игнорируя эффекты летнего времени.
Итак, почему следующий код сбой?
Duration duration = Duration.ofSeconds(3000);
System.out.println(duration.get(ChronoUnit.MINUTES));
Возникает UnsupportedTemporalTypeException
:
java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Minutes
at java.time.Duration.get(Duration.java:537)
Итак, каков рекомендуемый способ извлечения минут и часов из объекта продолжительности? Нужно ли нам вычислять себя от количества секунд? Почему это было реализовано именно так?