“为什么要这样实施?”
其他答案涉及
toXxx()允许查询小时/分钟的方法。我将尝试解决原因。
该
TemporalAmount接口和
get(TemporalUnit)方法在此过程的后期添加。我个人并不完全相信我们有足够的证据来证明在该领域中进行设计的正确方法,但是我有些不安
TemporalAmount。我相信这样做会稍微混淆API。
事后看来,我认为其中
TemporalAmount包含正确的方法,但我认为
get(TemporalUnit)应该使用不同的方法名称。原因是
get(TemporalUnit)本质上是框架级别的方法-
它不是为日常使用而设计的。不幸的是,方法的名称
get并不意味着这一点,导致盲蝽象调用
get(ChronoUnit.MINUTES)上
Duration。
所以,想的办法
get(TemporalUnit)是想象一个低层次的框架观看量为
Map<TemporalUnit,Long>这里
Duration是一个
Map大小两次与中键
SECONDS和
NANOS。
在是相同的,这样,
Period从低级别的框架看作
Map大小三-
DAYS,
MONTHS和
YEARS(其幸好具有较少错误的几率)。
总体而言,对应用程序代码的最佳建议是忽略该方法
get(TemporalUnit)。使用
getSeconds(),
getNano(),
toHours()和
toMinutes()来代替。
最后,从a获取“ hh:mm:ss”的一种方法
Duration是:
LocalTime.MIDNIGHT.plus(duration).format(DateTimeFormatter.ofPattern("HH:mm:ss"))一点都不漂亮,但是它的有效期不到一天。
to…Part
Java 9中的新方法
现在以Java
9实现的JDK-8142936问题添加了以下方法来访问的每个部分
Duration。
toDaysPart
toHoursPart
toMinutesPart
toSecondsPart
toMillisPart
toNanosPart



