Of the Duration
class in the new JSR 310 date API (java.time package) available in Java 8 and later, the javadoc says :
This class models a quantity or amount of time in terms of seconds and nanoseconds. It can be accessed using other duration-based units, such as minutes and hours.In addition, the DAYS unit can be used and is treated as exactly equal to 24 hours, thus ignoring daylight savings effects.
So, why does the following code crash ?
Duration duration = Duration.ofSeconds(3000);
System.out.println(duration.get(ChronoUnit.MINUTES));
This raises an UnsupportedTemporalTypeException
:
java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Minutes
at java.time.Duration.get(Duration.java:537)
So what is the recommended way to extract minutes and hours from a duration object ? Do we have to make the calculation ourselves from the number of seconds ? Why was it implemented that way ?
import
statements as they share a few common class names (LocalDate
etc.). For clarity, I suggest never mixing java.time and Joda-Time in the same chunk of code. As for those oldjava.util.Date
&.Calendar
&SimpleDateFormat
, definitely avoid them. – Kela