在Java 8及更高版本的java.time框架中,
Duration
类表示:
然而,当我调用该类以秒和纳秒为单位模拟时间数量或时间量。可以使用其他基于持续时间的单位(例如分钟和小时)访问它。此外,
DAYS
单位可以使用,并且被视为等于24小时,因此忽略夏令时效应。
get
方法并传递ChronoUnit.DAYS
时,会抛出异常。LocalTime start = LocalTime.of ( 0 , 0 , 0 ); // First moment of the day.
LocalTime stop = LocalTime.of ( 2 , 0 , 0 ); // 2 AM.
Duration duration = Duration.between ( start , stop );
long days = duration.get ( ChronoUnit.DAYS );
主线程中的异常:java.time.temporal.UnsupportedTemporalTypeException: 不支持的单位:天
我是否理解有误或者在使用类时出现了问题?
Duration
的内部状态只包含秒和纳秒。get(TemporalField)
方法旨在根据内部状态产生部分数量。相比之下,toDays()
试图确定以1d=24h为基础转换为整个天数的数量。 - Meno Hochschildget(TemporalField)
,我想说的是get(TemporalUnit)
。 - Meno Hochschild