在 Scala 中使用日期时间/时间戳

菲利克斯

有没有一种在 Scala 中使用日期时间/时间戳的简单方法?什么是最佳实践?我目前使用“日期”来保留数据,但我也想保留当前时间。我正在努力设定日期。这是我的代码:

val now = new java.sql.Timestamp(new java.util.Date().getTime)

我也尝试这样做:

val now = new java.sql.Date(new java.util.Date().getTime)

将进化中的数据类型更改为“时间戳”时,出现错误:

case class MyObjectModel(
                               id: Option[Int],
                               title: String,
                               createdat: Timestamp,
                               updatedat: Timestamp,
                               ...)

object MyObjectModel{
  implicit val myObjectFormat = Json.format[MyObjectModel]
}

安慰:

app\models\MyObjectModel.scala:31: No implicit format for 
java.sql.Timestamp available.
[error]   implicit val myObjectFormat = Json.format[MyObjectModel]
[error]                                               ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed

更新:

object ProcessStepTemplatesModel {
  implicit lazy val timestampFormat: Format[Timestamp] = new Format[Timestamp] {
    override def reads(json: JsValue): JsResult[Timestamp] = json.validate[Long].map(l => Timestamp.from(Instant.ofEpochMilli(l)))

    override def writes(o: Timestamp): JsValue = JsNumber(o.getTime)
  }
  implicit val processStepFormat = Json.format[ProcessStepTemplatesModel]
}
伊尔伯特

尝试在您的代码中使用它

implicit object timestampFormat extends Format[Timestamp] {
    val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
    def reads(json: JsValue) = {
      val str = json.as[String]
      JsSuccess(new Timestamp(format.parse(str).getTime))
    }
    def writes(ts: Timestamp) = JsString(format.format(ts))
  }

它以 JS 兼容格式(反)序列化,如下所示“2018-01-06T18:31:29.436Z”

请注意:隐式对象在使用前应在代码中清除

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Scala 中使用 joda 时间

来自分类Dev

Spark Scala从日期开始创建时间戳列

来自分类Dev

在scala中将时间字符串转换为时间戳/日期时间

来自分类Dev

时间戳转换 Spark Scala

来自分类Dev

使用joda datetime的Scala日期时间转换

来自分类Dev

Scala结合时间戳序列

来自分类Dev

如何在Scala中将Excel日期长类型转换为时间戳

来自分类Dev

在Logstash中使用日期格式解析时间戳

来自分类Dev

在脚本中使用正确的日期和时间戳

来自分类Dev

在 Ecto 时间戳中使用 ISO8601 日期

来自分类Dev

Scala转换到日期时间很长

来自分类Dev

使用Scala将字符串转换为Spark的时间戳

来自分类Dev

时间戳的Scala Playframework隐式读者编写器

来自分类Dev

对时间戳的scala arrayBuffer进行排序

来自分类Dev

Java / Scala中用于Spark-csv的时间戳解析

来自分类Dev

Spark Scala DataFrame时间戳转换排序?

来自分类Dev

在Spark Scala中将CDT时间戳转换为UTC格式

来自分类Dev

带有PostgreSQL的Scala Slick 2.0。比较时间戳

来自分类Dev

Java / Scala中用于Spark-csv的时间戳解析

来自分类Dev

Scala:绑定时间

来自分类Dev

Spark Scala-尝试从时间戳提取时间时为Null

来自分类Dev

使用Slick / Scala将日期和时间存储到MySQL中

来自分类Dev

Scala使用nscala时间获取当前时间的毫秒数

来自分类Dev

使用数据框scala创建带有时间戳的csv文件作为文件名

来自分类Dev

使用数据框scala创建带有时间戳的csv文件作为文件名

来自分类Dev

如何仅使用日期过滤时间戳?

来自分类Dev

使用Awk的匹配日期时间戳

来自分类Dev

比较日期时间戳

来自分类Dev

Firebase的日期与时间戳