Date Codecs
By default, Scala-Cass uses the timestamp format provided as default for the Java driver. It is:
| Cassandra Type | Scala Type |
|---|---|
| timestamp | java.util.Date |
You have the option of using the Joda library or Jdk8 date library as a replacement for this default. While the examples below showcase how to read data of joda/jdk8 types, the same process is required for writing these types to Cassandra.
Joda Implicits
All you need to do is import the implicits required to understand the joda Instant,
com.weather.scalacass.joda.Implicits._
scala> import com.weather.scalacass.syntax._, com.weather.scalacass.joda.Implicits._
import com.weather.scalacass.syntax._
import com.weather.scalacass.joda.Implicits._
scala> r // some row from your table
res3: com.datastax.driver.core.Row = Row[a primary key, Mon Jul 23 04:06:36 GMT 2018]
scala> r.as[org.joda.time.Instant]("mytimestamp") // cassandra "timestamp"
res4: org.joda.time.Instant = 2018-07-23T04:06:36.865Z
Jdk8 Implicits
All you need to do is import the implicits required to understand the jdk8 Instant,
com.weather.scalacass.jdk8.Implicits._
scala> import com.weather.scalacass.syntax._, com.weather.scalacass.jdk8.Implicits._
import com.weather.scalacass.syntax._
import com.weather.scalacass.jdk8.Implicits._
scala> r // some row from your table
res5: com.datastax.driver.core.Row = Row[a primary key, Mon Jul 23 04:06:36 GMT 2018]
scala> r.as[java.time.Instant]("mytimestamp") // cassandra "timestamp"
res6: java.time.Instant = 2018-07-23T04:06:36.865Z