我試圖使用 IMAP 從 Outlook 的收件箱中獲取某個日期的電子郵件,但我收到的電子郵件的日期與我用于搜索的日期不符,我的代碼如下:SimpleDateFormat df1 = new SimpleDateFormat( "MM/dd/yy" );String dt="10/02/18";java.util.Date dDate = df1.parse(dt);/* Connection code to the email goes here */SearchTerm st = new ReceivedDateTerm(ComparisonTerm.EQ,dDate);IMAPFolder inbox = (IMAPFolder) store.getFolder("INBOX");inbox.open(Folder.READ_WRITE);Message[] messages = inbox.search(st);int total = messages.length;/* RESULTS */println("\nTotal_Email = " + messages.length);for (int index = 0; index < total; index++) { Date date=message.getReceivedDate(); System.out.println("DATE RECEIVED="+date);}當我使用日期“10/01/18”時,我得到以下結果Total_Email = 5收到日期=周一 10 月 1 日 17:45:44 COT 2018收到日期=周一 10 月 1 日 16:43:27 COT 2018收到日期=周一 10 月 1 日 16:17:11 COT 2018收到日期=周一 10 月 1 日 15:37:38 COT 2018收到日期=周一 10 月 1 日 14:53:48 COT 2018然后當我使用日期“10/02/18”時得到以下結果Total_Email = 6收到日期 = 2018 年 10 月 2 日星期二 08:09:53 COT收到日期=周一 10 月 1 日 23:21:34 COT 2018收到日期=周一 10 月 1 日 22:37:22 COT 2018收到日期=周一 10 月 1 日 21:33:37 COT 2018收到日期=周一 10 月 1 日 20:21:20 COT 2018收到日期=周一 10 月 1 日 19:11:50 COT 2018我的猜測是這與我的時區有關,我住在哥倫比亞,我的時區是 GMT-5,有什么辦法可以修復并獲得正確的結果?
1 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
不,IMAP 不知道時區,它是服務器特定的,它計算和報告結果的時區。您可能需要請求比您需要的更多并進行客戶端過濾。
大多數大型跨國服務器為方便起見使用 UTC,因此您必須獲取與您感興趣的時間段重疊的兩天。
添加回答
舉報
0/150
提交
取消