Java 将Scala并发持续时间添加到DateTime

Java 将Scala并发持续时间添加到DateTime,java,scala,datetime,Java,Scala,Datetime,如何将scala.concurrent.Duration添加到一些Java/scala时间表示中,以获得未来/过去的时间 我非常喜欢scalaDuration如何将方法添加到整数中(例如10秒),因此我尝试执行以下形式的操作: import java.time.LocalDateTime val futurePoint: LocalDateTime = LocalDateTime.now + (10 Seconds) 我不希望像建议的那样使用其他库,我正试图坚持使用Java/Scala语言库

如何将
scala.concurrent.Duration
添加到一些Java/scala时间表示中,以获得未来/过去的时间

我非常喜欢scala
Duration
如何将方法添加到整数中(例如
10秒
),因此我尝试执行以下形式的操作:

import java.time.LocalDateTime

val futurePoint: LocalDateTime = LocalDateTime.now + (10 Seconds)

我不希望像建议的那样使用其他库,我正试图坚持使用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))
    }
  }
}
现在您可以运行以下命令(警告是因为使用了中缀符号):

scala> LocalDateTime.now + (1 minute)
res15: java.time.LocalDateTime = 2016-10-22T16:44:46.787