gpt4 book ai didi

java - MongoDB(Java 驱动程序)- 查询间隔内的日期

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:58 24 4
gpt4 key购买 nike

我是 MongoDB 新手,尝试使用 Java 驱动程序进行查询以获取日期间隔内的一些记录。

当我这样做时,在 shell 中:

db.messages.find({
"date" : {
$gt: ISODate("2014-01-01T00:00:00Z"),
$lt: ISODate("2014-01-01T00:00:05Z")
}
});

它返回 4 条记录。

在 Java 中我正在这样做:

try {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1 = dateFormat.parse("2014-01-01 00:00:00");
Date d2 = dateFormat.parse("2014-01-01 00:00:05");

BasicDBObject query = new BasicDBObject();
query.append("date", new BasicDBObject().append("$gte", d1).append("$lt", d2));

System.out.println(query);
}
catch (ParseException ex) { Logger.getLogger(MongoDbNavigationMessageDao.class.getName()).log(Level.SEVERE, null, ex); }

如果我搜索查询,我不会得到任何记录。此外,System.out.println(query);的输出是:

{ "date" : { "$gte" : { "$date" : "2013-12-31T23:00:00.000Z"} , "$lt" : { "$date" : "2013-12-31T23:00:05.000Z"}}}

如您所见,日期错误...发生了什么事?

最佳答案

嗯,我发现了,打印的日期不一样,因为 MongoDB 考虑了时区。由于打字错误,我没有结果......

关于java - MongoDB(Java 驱动程序)- 查询间隔内的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com