cats-time
Instances for Cats Typeclasses for Java 8 Time. Similar to the encoding that are offered in Circe and Cormorant.
Time is a pain to deal with reasonably. So tread with caution.
Quick Start
To use cats-time in an existing SBT project with Scala 2.11 or a later version, add the following dependencies to your
build.sbt
depending on your needs:
libraryDependencies ++= Seq(
"org.typelevel" %% "cats-time" % "0.5.1"
)
Examples
First lets start with some imports.
import org.typelevel.cats.time._
import cats.syntax.all._
import java.time._
Then we can display the Show
instances.
DayOfWeek.MONDAY.show
// res0: String = "Monday"
Duration.ofDays(3).show
// res1: String = "PT72H"
Instant.now.show
// res2: String = "2025-02-16T13:19:56.677535Z"
LocalDate.now.show
// res3: String = "2025-02-16"
LocalDateTime.now.show
// res4: String = "2025-02-16T13:19:56.678451"
LocalTime.now.show
// res5: String = "13:19:56.678962"
MonthDay.now.show
// res6: String = "2-16"
OffsetDateTime.now.show
// res7: String = "2025-02-16T13:19:56.680133Z"
OffsetTime.now.show
// res8: String = "13:19:56.681159Z"
Period.ofWeeks(6).show
// res9: String = "P42D"
Year.now.show
// res10: String = "2025"
YearMonth.now.show
// res11: String = "2025-02"
ZoneId.systemDefault.show
// res12: String = "Etc/UTC"
ZonedDateTime.now.show
// res13: String = "2025-02-16T13:19:56.683269Z[Etc/UTC]"