如何计算两个 'DateTimes' 之间的 'Duration'

How to calculate 'Duration' between two 'DateTimes'

我有两个 DateTime 对象:

import org.joda.time.{DateTime, Hours}
import scala.concurrent.duration._

val t1: DateTime = DateTime.now
val t2: DateTime = /* Some other time in the future */

我想计算两者之间的时长:

val d: Duration = Duration(t2 - t1)

显然上面的代码不起作用。我尝试了 minus,但这需要 Duration,而不是 DateTime

最简单的方法是什么?

同意@stefanobaghino,尝试使用自java 8 起开箱即用的java.time。关于你的情况,检查this:

 Duration

public Duration(ReadableInstant start,
                ReadableInstant end)

    Creates a duration from the given interval endpoints.

    Parameters:
        start - interval start, null means now
        end - interval end, null means now 
    Throws:
        ArithmeticException - if the duration exceeds a 64 bit long

你们很亲近,哈哈

乔达时间

使用 org.joda.time.Duration 构造函数获取一对 DateTime 对象。

Duration d = new Duration( t1 , t2 ) ;

java.time

java.time.Duration class 上使用静态工厂方法。

Duration d = Duration.between( t1 , t2 ) ;
import scala.concurrent.duration._

val d = Duration(t2.getMillis - t1.getMillis, MILLISECONDS)