如何使用JSON写入将日期写入ISO 8601格式?

bre*_*ent 3 json scala date iso8601 playframework

我有个案例

import java.sql.Date
case class GetMilestoneLanguage(
                               ...
                   due_date: Option[Date],
                                ...
                   )
object GetMilestoneLanguage {
  implicit val writes = Json.writes[GetMilestoneLanguage]
}
Run Code Online (Sandbox Code Playgroud)

它以UTC格式输出JSON - 我需要它是iso 8601.我不使用Joda时间.

在iso 8601中获取日期的最简单方法是什么?

谢谢

Dim*_*tri 7

import play.api.libs.json.{Json, Writes}
import play.api.libs.json.Writes.dateWrites // do not import everything here, especially DefaultDateWrites

case class GetMilestoneLanguage(param1: String, dueDate: Option[java.sql.Date])

object GetMilestoneLanguage {
  implicit val customDateWrites: Writes[java.util.Date] = dateWrites("yyyy-MM-dd'T'HH:mm:ss'Z'")

  implicit val writes =  Json.writes[GetMilestoneLanguage]
}
Run Code Online (Sandbox Code Playgroud)

这里的关键是定义自己的隐含Writes[java.util.Date].如果你导入DefaultDateWrites你的customDateWrites意志将被默默忽略(我想知道为什么没有含糊不清的隐含警告).