为什么在 java.time 中无法以分钟或小时为单位获得持续时间?Java 9 中的新方法to…Part
在 Java 8 及更高版本中可用的新 JSR 310 日期 API(java.time 包)中的 Duration
类中,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)
那么,从持续时间对象中提取分钟和小时的建议方法是什么?我们是否必须根据秒数自己进行计算?为什么以这种方式实现?