无法获得ISODate格式结果

时间:2017-05-03 20:15:41

标签: java mongodb mongodb-query

我正在使用MongoCursor迭代集合并检索changeDate(采用ISODate格式)。但是,使用mongocursor以不同的格式返回数据。是否可以以ISODate格式检索changeDate。

这是文档结构和我的代码。请告诉我如何以ISODate格式检索日期。

MongoCursor<Document> cursor = col.find().iterator();

        while (cursor.hasNext()) {

            Document doc = hCursor.next();
            Object changeDate = doc.getDate("ChangeDate");
            System.out.println(changeDate);
        }

changeDate以以下格式返回: 2017年5月5日星期五18:46:58 EDT 2017

收集数据的结构:

{
    "_id" : ObjectId("590a253fe4b05069ea21776b"),
    "changeDate" : ISODate("2017-05-03T18:46:58.577Z"),
    "createdBy" : “abc”,
    "lastChangedBy" : “xyzzy”

}

我希望输出为2017-05-03T18:46:58.577Z。 我尝试使用joda日期,但没有发现它非常有用。 感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

您可以将Date更改为InstanttoString()。使用DateTimeFormatter.ISO_INSTANT

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_INSTANT

 Date changeDate = doc.getDate("ChangeDate");
 String instant = changeDate.toInstant().toString(); // 2017-05-03T18:46:58.577Z