java - MongoDb TimeZone 中的日期查询问题

标签 java mongodb date

您好,我在实现从 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 c1 = Criteria.where("publishDate").lt(**currDate**);

增加了 5 小时而不是 4 小时。猜测是因为 currDate 值是东部时间而不是东部时间。谢谢。

最佳答案

它增加了 4 小时,因为该日期以 UTC 格式显示,比 EDT(一个月前的正确时区)早 4 小时。我不认为这里有问题。

关于java - MongoDb TimeZone 中的日期查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227747/

相关文章:

vba - Excel VBA 导入 .txt 文件导致日期格式错误

java - 将大文本文件加载到 int 数组中的最快方法

mongodb - 如何使用 Liquibase-MongoDb-Spring-boot

powershell 中的日期/时间条件 - SharePoint - LastItemModifiedDate - LastRunTime

node.js - 使用 $group(aggregation) 返回多个对象

javascript - Nodejs Mongoose : Trying to save date in UTC Timezone but its saving in local time zone

ios - 日期格式不一致

java - 在eclipse中自动构建期间生成代码?

java - 嵌套事务(而不是并发事务)的默认隔离级别是多少?

java - 其他复合小部件未接收 ChangeEvent