gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:50:04 25 4
gpt4 key购买 nike

如何将 scala.concurrent.Duration 添加到一些 Java/Scala 时间表示以获得 future /过去的时间?

我真的很喜欢 scala Duration 将方法添加到整数的方式(例如 10 秒),所以我正在尝试做一些形式的事情:

import java.time.LocalDateTime

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

我不想按照建议使用其他库 in this answer ,我正在努力坚持使用 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

关于java - 将 Scala 并发持续时间添加到 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com