Я считаю, что большинство людей использует JodaTime, поэтому может объяснить, почему его не хватает. Если его не является частью Anorm, вы можете написать свой собственный конвертер.
Это непроверенный, но это будет выглядеть, как показано ниже
import java.time.Instant
import java.time.format.DateTimeFormatter
import java.util.TimeZone
import anorm._
object InstantAnormExtension {
val dateFormatGeneration = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss-Z")
implicit def rowToDateTime: Column[Instant] = Column.nonNull { (value, meta) =>
val MetaDataItem(qualified, nullable, clazz) = meta
value match {
case ts: java.sql.Timestamp => Right(ts.toInstant)
case d: java.sql.Date => Right(d.toInstant)
case str: java.lang.String => Right(Instant.from(dateFormatGeneration.parse(str)))
case _ => Left(TypeDoesNotMatch("Cannot convert " + value + ":" + value.asInstanceOf[AnyRef].getClass))
}
}
implicit val dateTimeToStatement = new ToStatement[Instant] {
def set(s: java.sql.PreparedStatement, index: Int, aValue: Instant): Unit = {
if(aValue == null) {
s.setTimestamp(index, null)
} else {
s.setTimestamp(index, java.sql.Timestamp.from(aValue))
}
}
}
}
См https://github.com/playframework/anorm/pull/10 – cchantep