java - java 9999-12-31 iso 日期插入 mongo 结果作为非 iso 日期插入
问题描述
我想在 mongodb 中插入以下文档:
Query query = new Query();
query.addCriteria(Criteria.where("client").is(client));
Update update = new Update();
update.set("dateTime", new DateTime());
update.set("maxDate", new DateTime("9999-12-31T00:00:00.000+01:00"));
mongoTemplate.upsert(query, update, MyClass.class);
并且插入的对象是
{
"client" : "client",
"dateTime" : ISODate("2020-03-12T10:11:35.077Z"),
"maxDate" : Date(253402210800000)
}
我希望 maxDate 采用 ISODate 格式。可能吗 ?9999-12-31T00:00:00.000+01:00对 mongodb 来说太远了吗?这么大的价值有什么问题吗?
我在这里读到https://docs.mongodb.com/manual/core/shell-types/ mongoDB 可以支持 9999 年
如果我使用 datagrip 而不是 robomongo 来读取文档,则使用 datagrip 而不是 robomongo 进行编辑,格式是正确的。问题可能来自 robomongo 显示器吗?
解决方案
我没有尝试或运行这个。但我相信对 DateTime 使用不同的构造函数应该可以解决这个问题。请尝试下面的 maxDate 字段构造函数。
公共日期时间(int year,int monthOfYear,int dayOfMonth,int hourOfDay,int minuteOfHour,int secondOfMinute,int millisOfSecond,DateTimeZone zone)
推荐阅读
- javascript - 计算父子子节点
- c++ - 具有模板类向量的多态性
- html - 点击提交后显示的链接应在新选项卡中打开
- react-hooks - 如何在动态模式中使用反应状态钩子
- tsql - 在 SSRS 中,您可以将多个参数值归为一个吗?
- database - 在 AWS 中自动化 Postgres 逻辑数据库 pg_dumps 的最佳方法
- linux - Linux内核:将用户空间标志传递给内核以在内存中查找特殊页面
- angular - ion2-calendar 问题显示天数和只读
- flutter - 如何测试flutter生成的release APK?
- c - 在 C 中使用 sprintf 并收到警告时出现问题