如何计算两个 '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)
我有两个 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)