使用MongoOperations Spring Java在mongodb中保存日期时出错

问题描述

我需要在具有日期的mongodb中保存json对象,这是示例json:

{
 "modifiedon": {
 "$dateFromString": {
     "dateString": "2017-02-08T12:10:40.787"
  }
},"modifiedby": "ramsha-GRM1 Ambreen","id": 537
}

我希望'modifiedOn'值应另存为

"modifiedon": ISODate("2017-02-08T12:10:40.78")

这是使用Java将json插入mongodb的代码

String json = {<JSONVALUE>};
mongoOperations.insert(json,"risk");

但是MongoOperations会保存JSON,而不会使用$ dateFromString进程(该日期是MongoDB格式的日期)。任何线索都非常感谢

解决方法

遇到上述问题后,通过将输入JSON对象修改为

,已解决了该问题

{ "modifiedon": { "$date": "2020-09-30T11:32:58.000Z" },"modifiedby": "ramsha-GRM1 Ambreen","id": 229 }

并将其保存在MongoDB中作为日期对象,我可以查询日期

,

dateString的格式更改为using ISO-8601 representation。换句话说,格式应为DateTimeFormatter#ISO_INSTANT指定的格式。下面给出的是以此格式生成的字符串的示例:

import java.time.Instant;

public class Main {
    public static void main(String[] args) {
        System.out.println(Instant.now());
    }
}

输出:

2020-10-02T13:52:08.564327Z

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...