Ram*_*gil 3 java datetime scala
我如何scala.concurrent.Duration
在一些 Java/Scala 时间表示中添加一个以获取未来/过去的时间?
我真的很喜欢 Scala 如何Duration
为整数添加方法(例如10 seconds
),所以我正在尝试做一些以下形式的事情:
import java.time.LocalDateTime
val futurePoint: LocalDateTime = LocalDateTime.now + (10 Seconds)
Run Code Online (Sandbox Code Playgroud)
我不想使用本答案中建议的其他库,我试图坚持使用 Java/Scala 语言库。
您可以使用隐式类来完成此操作,并将方法添加到LocalDateTime
:
import java.time.LocalDateTime
import java.time.{Duration => JDuration}
import scala.concurrent.duration._
object M {
def main(args: Array[String]): Unit = {
val futurePoint: LocalDateTime = LocalDateTime.now + (10 seconds)
println(futurePoint)
}
implicit class RichDateTime(val localDateTime: LocalDateTime) extends AnyVal {
def +(duration: Duration): LocalDateTime = {
localDateTime.plus(JDuration.ofMillis(duration.toMillis))
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以运行以下命令(警告是因为使用了中缀表示法):
scala> LocalDateTime.now + (1 minute)
res15: java.time.LocalDateTime = 2016-10-22T16:44:46.787
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2237 次 |
最近记录: |