【问题标题】:JodaTime Serialization issueJodaTime 序列化问题
【发布时间】:2018-05-02 21:44:01
【问题描述】:

我有一个使用 Java JodaTime 的现有应用程序。但是,在升级到最新的 json4s-core 库 3.6.0-M3 后,将带有时区的日期字符串转换为日期时出现以下错误。

Caused by: java.lang.IllegalArgumentException: No instant converter found for type: org.json4s.ext.DateParser$ZonedInstant

当我编写自定义DateTime 序列化程序时会发生这种情况,该序列化程序具有多种格式的回退:

 case JString(s) ⇒ Try(dateTimeFormat.parseDateTime(s)).getOrElse(new DateTime(DateParser.parse(s, format)))

导致问题的示例字符串:2018-05-02T21:43:29Z

我确定我使用的是 jodatime 2.9.2 和匹配的 json4s-ext 库

【问题讨论】:

    标签: java jodatime json4s


    【解决方案1】:

    如果有人遇到类似问题,我会留下我的答案。我意识到,由于我要覆盖默认的DateTime 序列化程序,因此我需要对我的自定义序列化程序进行以下更改以处理ZonedInstant

    case JString(s) ⇒ Try(dateTimeFormat.parseDateTime(s)).getOrElse({
        val zonedInstant = DateParser.parse(s, format)
        new DateTime(zonedInstant.instant, DateTimeZone.forTimeZone(zonedInstant.timezone))
      })
    

    【讨论】:

      猜你喜欢
      • 2014-12-12
      • 2012-06-11
      • 2016-08-16
      • 2010-12-12
      • 1970-01-01
      相关资源
      最近更新 更多