我是MongoDB新手,正在尝试使用Java驱动程序进行查询,以获取某个日期间隔内的一些记录。
当我这样做的时候:
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(查询);的输出是:
{ "date" : { "$gte" : { "$date" : "2013-12-31T23:00:00.000Z"} , "$lt" : { "$date" : "2013-12-31T23:00:05.000Z"}}}如你所见,日期是错的。到底怎么回事??
发布于 2015-10-28 18:10:34
嗯,我找到了,打印的日期不一样,因为MongoDB考虑了时区。因为一个打字错误我没有结果。
https://stackoverflow.com/questions/33373431
复制相似问题