Чтение определенного файла даты с использованием AgeFileFilter - PullRequest
0 голосов
/ 10 сентября 2018

Как прочитать определенный файл даты, используя AgeFileFilter? Я объявляю конкретную дату в файлах свойств. Я пытался сделать это с

FileFilter fileFilter = new AgeFileFilter(cutoffDate, false);  

Это дает мне новые файлы

FileFilter fileFilter = new AgeFileFilter(cutoffDate, true);  

И это дает мне старше с равными датами файлов

Но оба они не работают по моему требованию, тогда я тоже попробовал

FileFilter fileFilter = new AgeFileFilter(long cutoffDate);  

Но он дает мне старые файлы с одинаковыми файлами даты
И мое требование состоит в том, чтобы читать или отображать только определенный файл даты ..
Так как это возможно? Любая помощь будет признательна .. Спасибо заранее

1 Ответ

0 голосов
/ 10 сентября 2018

AgeFileFilter фильтрует файлы только до или после отрезанного даты и времени.

Помните, что параметр cutOffDate - это дата-время Unix в миллисекундах. Вы будете знать точную дату и время с точностью до миллисекунды и сохраните ли вы их в файле свойств?

Если да (маловероятно), почему бы вам просто не написать свой FileFilter? Это всего лишь один метод, и с помощью Java 8 вы можете легко написать его так:

long cutOffDate = 1536584743813L;

FileFilter fileFilter = file -> file.lastModified() == cutOffDate;

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

Тогда вы, вероятно, захотите получить дату файла из последней измененной временной метки.

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

LocalDate today = LocalDate.now();

FileFilter fileFilter = file -> LocalDate.from(Instant.ofEpochMilli(file.lastModified())).isEqual(today);
...