Отфильтровать по дате (стрим)

157
28 июня 2019, 02:20

Есть список обьектов, у каждого из них есть поле ZonedDateTime createdDate необходимо сделать выборку обьектов за последний год.

...
List<CounterReadingsRow> counterReadingsRows = counterReadingsRowRepository.findByCounterReadingsAccount(account);
ZonedDateTime now = ZonedDateTime.now();
ZonedDateTime end = ZonedDateTime.now().minusYears(1);
return counterReadingsRows.stream()
            .map(AbstractAuditingEntity::getCreatedDate)
            .filter(...);

Никак не получается в фильтре сделать выборку за последний год. Может кто подскажет пример. Благодарю!

Answer 1
.filter(d -> d.compareTo(end) > 0)
Answer 2

Судя по всему, вам нужно что-то такое

return counterReadingsRows.stream()
            .map(AbstractAuditingEntity::getCreatedDate)
            .filter(zonedDateTime -> zonedDateTime.compareTo(now) =< 0 && zonedDateTime.compareTo(end) >= 0);
READ ALSO
Как загрузить файл в облачное хранилище (Google Drive, Яндекс Диск)?

Как загрузить файл в облачное хранилище (Google Drive, Яндекс Диск)?

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

115
Отправить фото на стену группы VK

Отправить фото на стену группы VK

Не могу загрузить фото на стену в группе , загрузил фото в профиль photo3420_326050355 и получил url при передаче VKApiwall()

117
Как отобразить свои кастомные шрифты из папки в combobox?

Как отобразить свои кастомные шрифты из папки в combobox?

Впервые знакомлюсь с comboboxПо туториалу сделал отображение строковых значений в combobox

136
Проверка на упорядоченность

Проверка на упорядоченность

Не понимаю зачем надо применить в цикле условие i < listsize () - 1; (здесь 9 итераций) Почему не просто i < list

112