我正在尝试在某个时间戳之后收到消息,我编码的方式是由本网站的另一位程序员建议的:
GregorianCalendar date = new GregorianCalendar();
SearchTerm newer = new ReceivedDateTerm(ComparisonTerm.GT,date.getTime());
Message msgs[] = folder.search(newerThen);
问题是我从日期开始收到所有邮件,而不是具体时间。我想知道是否有一些解决方法来模仿这个。我的意思是,对于一个例子,如果我想从今天中午以来获得所有消息,我会得到那些消息,而不是那些在今天早上收到的消息。
提前致谢,
编辑:
关于这一点的新想法:也许某些日期操纵可以完成这项工作。我的意思是,比较时间戳中的分钟数并以编程方式过滤那些不符合条件的消息。我知道这不是最好的方式,但它可以奏效。
PS:我正在使用IMAP并尝试从Gmail发送邮件,但我想无论邮件服务器是什么,它都应该有效。答案 0 :(得分:10)
不幸的是,没有。在这种情况下,JavaMail类和IMAP的SEARCH
命令takes only dates, not times正在使用IMAP协议(请参阅SINCE
和SENTSINCE
条件。)
答案 1 :(得分:2)
您可以使用setTime()
方法查询特定时间。
示例:
setTime(timeInMilliseconds)