首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDB (Java驱动程序)-以时间间隔查询日期

MongoDB (Java驱动程序)-以时间间隔查询日期
EN

Stack Overflow用户
提问于 2015-10-28 00:30:44
回答 1查看 622关注 0票数 1

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

当我这样做的时候:

代码语言:javascript
运行
复制
db.messages.find({
    "date" : {
        $gt: ISODate("2014-01-01T00:00:00Z"),
        $lt: ISODate("2014-01-01T00:00:05Z")
    }
});

它返回4条记录。

在Java中,我这样做:

代码语言:javascript
运行
复制
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(查询);的输出是:

代码语言:javascript
运行
复制
{ "date" : { "$gte" : { "$date" : "2013-12-31T23:00:00.000Z"} , "$lt" : { "$date" : "2013-12-31T23:00:05.000Z"}}}

如你所见,日期是错的。到底怎么回事??

EN

回答 1

Stack Overflow用户

发布于 2015-10-28 18:10:34

嗯,我找到了,打印的日期不一样,因为MongoDB考虑了时区。因为一个打字错误我没有结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33373431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档