JavaMail: как получить новые сообщения по сравнению с отметками времени

Я пытаюсь получить сообщения после определенной отметки времени, как я ее закодировал, было предложено другим программистом на этом сайте:

GregorianCalendar date = new GregorianCalendar();
SearchTerm newer = new ReceivedDateTerm(ComparisonTerm.GT,date.getTime());
Message msgs[] = folder.search(newerThen);

проблема в том, что я получаю все сообщения с датой, а не конкретное время. Мне было интересно, есть ли какая-то работа, чтобы подражать этому. Я имею в виду, например, если бы я хотел получить все сообщения, начиная с сегодняшнего дня в полдень, я бы получил эти сообщения конкретно, а не те, которые были получены сегодня утром.

заранее спасибо,

EDIT:

новая мысль относительно этого: возможно, некоторые манипуляции с датой могли бы сделать эту работу. Я имею в виду, сравнивая минуты в метке времени и программно фильтровать те сообщения, которые не соответствуют критериям. Я знаю, это не лучший способ, но он может сработать.

PS: я использую IMAP и пытаюсь получить почту из gmail, но я думаю, что это должно работать независимо от того, что такое почтовый сервер.

2 ответов


к сожалению, нет. В этом случае протокол IMAP используется классами JavaMail и IMAP SEARCH команда принимает только даты, а не времени (см. SINCE и SENTSINCE критерии).


можно использовать setTime() метод запроса в течение определенного времени.

пример:

setTime(timeInMilliseconds)