持续时间

    为了使用Duration,你需要将以下依赖添加到你的项目中:

    • FiniteDuration保证是有限的,调用toNanos是安全的。
    • Duration可以是有限的,也可以是无限的,所以这种类型应该只在有限性不重要时使用;这是FiniteDuration的一种超类型。

    在 Scala 中,可以使用构造持续时间,并支持所有预期的算术运算:

    1. val fivesec = 5.seconds
    2. val threemillis = 3.millis
    3. val diff = fivesec - threemillis
    4. assert(diff < fivesec)
    5. val fourmillis = threemillis * 4 / 3 // you cannot write it the other way around
    6. val n = threemillis / (1 millisecond)
    1. final Duration fivesec = Duration.create(5, "seconds");
    2. final Duration diff = fivesec.minus(threemillis);
    3. assert diff.lt(fivesec);
    4. assert Duration.Zero().lt(Duration.Inf());

    Durations有一个兄弟名为Deadline,它是一个类,它持有绝对时间点的表示,并且支持通过计算现在和最后期限(deadline)之间的差异来派生一个持续时间。如果你想保持一个完整的最后期限,而不必注意簿记(book-keeping)工作,这是有用的。时间的流逝可以表示为:

    1. final Deadline deadline = Duration.create(10, "seconds").fromNow();
    2. final Duration rest = deadline.timeLeft();

    英文原文链接Duration.