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)