0
你好我得到以下問題,同時實現邏輯從MongoDB中取出1個月大的文件。 下面是代碼和輸出...日期查詢MongoDB中時區問題
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值是在EST而不是EDT.Thanks。
所以預期右它將運行查詢?我不需要擔心執行日期是4個小時? – NewQueries
是的,它應該調整他們都來自同一個時區來比較,所以應該是「正確的」。但它真的很重要嗎?我的意思是,的「一個月前」的定義似乎有點主觀反正(有些月份有31天,其他有28)。如果你的文件太早/刪除一個小時,四晚,是要損害你的業務流程? –
不是,在這種情況下,沒關係。我只是想知道如果有時間關鍵的應用程序。但是這有很大幫助。現在我可以嘗試一些非常重要的事情。謝謝。 – NewQueries