Skip to content

Instantly share code, notes, and snippets.

@travisbrown
Created January 15, 2016 18:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travisbrown/afbc0821691602c7824e to your computer and use it in GitHub Desktop.
Save travisbrown/afbc0821691602c7824e to your computer and use it in GitHub Desktop.
Basic codec for new Java time API
import cats.data.Xor, io.circe._, io.circe.jawn._, java.time.LocalDateTime
implicit val decodeLocalDateTime: Decoder[LocalDateTime] =
Decoder[String].flatMap(s =>
Decoder.instance(_ => Xor.fromTryCatch(LocalDateTime.parse(s)))
)
implicit val encodeLocalDateTime: Encoder[LocalDateTime] =
Encoder.instance(ldt => Json.string(ldt.toString))
@travisbrown
Copy link
Author

The error message for decoding failures won't be great, it could be parametrized on a DateTimeFormatter, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment