使用Mongodb生成无效字符串[UTC]的日期对象的java奇怪行为
我被困在java的一种奇怪行为之间。util。日期对象。我使用的是mongodb,所有日期都存储在UTC中。而数据库中存储的值都是正确的
"dateCreated" : ISODate("2021-05-08T15:37:48.882Z")
但当它被映射到java类型的Pojo属性时。util。输出的日期
"dateCreated":"2021-05-08T15:37:48.882Z[UTC]"
还有一个我不明白为什么的[UTC]?有人发现这个问题了吗?
我将quarkus
与jdk11
一起使用,用于mongo
连接的库是io.quarkus:quarkus-mongodb-panache
编辑:
为了处理安卓应用程序中的信息,我创建了一个自定义反序列化程序:
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")
}
}
}
但正如我所说,这似乎不是一个更干净的方法
如果需要更多信息,请告诉我
共 (0) 个答案