持续时间
为了使用Duration
,你需要将以下依赖添加到你的项目中:
FiniteDuration
保证是有限的,调用toNanos
是安全的。Duration
可以是有限的,也可以是无限的,所以这种类型应该只在有限性不重要时使用;这是FiniteDuration
的一种超类型。
在 Scala 中,可以使用构造持续时间,并支持所有预期的算术运算:
val fivesec = 5.seconds
val threemillis = 3.millis
val diff = fivesec - threemillis
assert(diff < fivesec)
val fourmillis = threemillis * 4 / 3 // you cannot write it the other way around
val n = threemillis / (1 millisecond)
final Duration fivesec = Duration.create(5, "seconds");
final Duration diff = fivesec.minus(threemillis);
assert diff.lt(fivesec);
assert Duration.Zero().lt(Duration.Inf());
Durations
有一个兄弟名为Deadline
,它是一个类,它持有绝对时间点的表示,并且支持通过计算现在和最后期限(deadline
)之间的差异来派生一个持续时间。如果你想保持一个完整的最后期限,而不必注意簿记(book-keeping
)工作,这是有用的。时间的流逝可以表示为:
final Deadline deadline = Duration.create(10, "seconds").fromNow();
final Duration rest = deadline.timeLeft();
英文原文链接:Duration.