我陷入了 java.util.Date 对象的奇怪行为之间。我正在使用 mongodb,所有日期都存储在 UTC 中。而数据库中的存储值都是正确的。
“创建日期”:ISODate(“2021-05-08T15:37:48.882Z”)
但是当它映射到 java.util.Date 类型的 Pojo 属性时,输出是
"创建日期":"2021-05-08T15:37:48.882Z[UTC]"
还有这个[UTC]我不明白为什么?有人赶上这个问题吗?我正在使用quarkus
,用于连接jdk11
的库是mongo
io.quarkus:quarkus-mongodb-panache
编辑:
为了处理我的 android 应用程序中的信息,我创建了一个自定义反序列化器:
class DateDeserializer(vc: Class<*>?) : StdDeserializer<Date>(vc) {
constructor() : this(Date::class.java)
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): Date {
// TODO("Not yet implemented")
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Date.from(ZonedDateTime.parse(p?.text).toInstant())
} else {
TODO("VERSION.SDK_INT < O")
}
}
}
但正如我所说,这似乎不是一种更清洁的方法。
让我知道是否需要更多信息。