首页 > 解决方案 > 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 显示器吗?

标签: javamongodbdatetimerobo3tisodate

解决方案


我没有尝试或运行这个。但我相信对 DateTime 使用不同的构造函数应该可以解决这个问题。请尝试下面的 maxDate 字段构造函数。

公共日期时间(int year,int monthOfYear,int dayOfMonth,int hourOfDay,int minuteOfHour,int secondOfMinute,int millisOfSecond,DateTimeZone zone)


推荐阅读