Skip to content

Instantly share code, notes, and snippets.

@fancellu
Last active June 27, 2019 10:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fancellu/f4b72e853766acf26bf16a7fb37cb8ac to your computer and use it in GitHub Desktop.
Save fancellu/f4b72e853766acf26bf16a7fb37cb8ac to your computer and use it in GitHub Desktop.
play.json formatter for java.sql.Timestamp and java.time.LocalDateTime
package models.database
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import play.api.libs.json.{Format, JsString, JsSuccess, JsValue}
object Common {
implicit object timestampFormat extends Format[Timestamp] {
val format = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
def reads(json: JsValue) = {
val str = json.as[String]
val ldt=LocalDateTime.parse(str,format)
JsSuccess(Timestamp.valueOf(ldt))
}
def writes(ts: Timestamp) = JsString(format.format(ts.toLocalDateTime))
}
implicit object localDateTimeFormat extends Format[LocalDateTime] {
val format = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
def reads(json: JsValue) = {
val str = json.as[String]
val ldt=LocalDateTime.parse(str,format)
JsSuccess(ldt)
}
def writes(localDateTime: LocalDateTime) = JsString(format.format(localDateTime))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment