我正在使用lift-mongodb-record 2.4。我所有的 MongoRecord 模型都包含以下DateTimeField字段,例如:
object created_at extends DateTimeField(this)
当我在这个模型上调用 asJSON 时,它会将日期解析为字符串,例如
Mon, 16 Jul 2012 21:26:58 GMT
我更喜欢其他格式(例如 ISO 8601,取决于实际用例)
我将如何以及在哪里设置自定义格式?
谢谢
覆盖asJValue 和setFromJValue应该可以解决问题,因为默认实现使用所谓的互联网日期,如下所示:
val statusDate = new DateTimeField(this){
val sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
override def asJValue = {
asJString(v => sdf.format(v.getTime))
}
override def setFromJValue(jvalue: JValue) = setFromJString(jvalue) {
v =>tryo {
sdf.parse(v)
}.map(d => {
val cal = Calendar.getInstance
cal.setTime(d)
cal
})
}
}