Scala Deadline.time 没有提供创建 Deadline 对象时设置的持续时间

Scala Deadline.time not giving the time duration that was set when creating Deadline object

我正在使用 Deadline 对象,如下所示。

scala> val d1 = Duration.create(10, "seconds").fromNow
d1: scala.concurrent.duration.Deadline = Deadline(1048157612536608 nanoseconds)

当我尝试打印我设置的时间(在本例中为 10 秒)时,打印的时间不正确。

scala> d1.time
res0: scala.concurrent.duration.FiniteDuration = 1048157612536608 nanoseconds

scala> d1.time.toSeconds
res1: Long = 1048157

从创建相同对象时设置的 Deadline 对象获取时间的正确方法是什么?

截止日期不应该这样使用。它基本上是 System.nanoTime 的包装器,允许轻松添加 Duration 值。

System.nanoTime 不打算用作时钟。它旨在用于计算时间差。

如果按原意使用Deadline就可以看到了,也就是产生时差的东西:

// diff on _rounded_ values
10.seconds.fromNow.time.toSeconds - Deadline.now.time.toSeconds // 10L
// diff on _actual_ values - by the time we start calculating `-` it should be less than 10s
10.seconds.fromNow - Deadline.now // 9999991191 nanoseconds