您好我在实现从mongoDB中删除1个月大的文档的逻辑时遇到了问题。 下面是代码和输出...
currDate = new Date(); // value is : Tue Nov 26 15:22:10 **EST** 2013
Calendar calDate = Calendar.getInstance();
calDate.setTime(new Date());
calDate.add(Calendar.MONTH,-1);
currDateMinusOneMonth = calDate.getTime(); // value is : Sat Oct 26 15:22:10 **EDT** 2013
Criteria c1 = Criteria.where("publishDate").lt(currDateMinusOneMonth);
Query query = new Query(c1);
logger.info("Query to find 1 month old documents: " + query.toString()); -->
{"publishDate" : { "$lt" : { "$date" : "2013-10-26T**19**:22:10.571Z"}}}
不知何故,它会在查询中增加4小时的时间。不知道为什么会这样。我们怎样才能避免这种情况?
当我将Criteria替换为下面
时Criteria c1 = Criteria.where("publishDate").lt(**currDate**);
它增加了5个小时而不是4个小时。猜猜是因为currDate值是在EST而不是EDT.Thanks。
答案 0 :(得分:2)
它增加了4个小时,因为该日期以UTC显示,比EDT提前4个小时(这是一个月前的正确时区)。我不认为这里有问题。