Java 使用AgeFileFilter读取特定日期文件
如何使用AgeFileFilter读取特定日期文件? 我在财产文件中声明特定日期。 我试着和你一起做Java 使用AgeFileFilter读取特定日期文件,java,file,apache-commons-io,filefilter,Java,File,Apache Commons Io,Filefilter,如何使用AgeFileFilter读取特定日期文件? 我在财产文件中声明特定日期。 我试着和你一起做 FileFilter fileFilter = new AgeFileFilter(cutoffDate, false); 它给了我更新的文件 FileFilter fileFilter = new AgeFileFilter(cutoffDate, true); 它给我提供了相同日期的文件 但是他们都没有按照我的要求工作,我也试了 FileFilter fileFilter = n
FileFilter fileFilter = new AgeFileFilter(cutoffDate, false);
它给了我更新的文件
FileFilter fileFilter = new AgeFileFilter(cutoffDate, true);
它给我提供了相同日期的文件
但是他们都没有按照我的要求工作,我也试了
FileFilter fileFilter = new AgeFileFilter(long cutoffDate);
但它给我的是日期相同的旧文件我的要求是只读取或显示特定的日期文件。
那怎么可能呢?
任何帮助都将不胜感激。请提前感谢
AgeFileFilter
仅过滤截止日期时间实例之前或之后的文件
请记住,cutOffDate
参数是以毫秒为单位的unix日期时间
你能以毫秒为单位知道确切的日期和时间并将其保存在你的财产文件中吗
如果是(不太可能),为什么不编写自己的FileFilter
?这只是一个方法,使用Java 8,您可以像这样轻松编写它:
long cutOffDate = 1536584743813L;
FileFilter fileFilter = file -> file.lastModified() == cutOffDate;
但我怀疑这不可能是你想要的。您是否仅从属性文件加载日期(无时间)
然后,您可能希望从上次修改的时间戳中获取文件的日期
以下仅接受今天修改的文件。您可以从属性文件中加载任何LocalDate
,而不是今天的
LocalDate today = LocalDate.now();
FileFilter fileFilter = file -> LocalDate.from(Instant.ofEpochMilli(file.lastModified())).isEqual(today);
这一行甚至意味着什么FileFilter=newagefilefilter(长截止日期)代码>?它不是有效的Java,您无法传递long cutOffDate
@jbx。请仔细查看AgeFileFilter(long cutoff)及其说明说明说明清楚。它将为您提供早于指定截止时间的文件,或比指定截止时间更新的文件。与截止时间不完全匹配的文件。long
参数是以毫秒为单位的时间戳,而不仅仅是日期,因此精确匹配没有意义。您可以在代码中确认它:是的,在属性文件中我只声明日期…而不是时间以属性文件中的任何格式解析日期,以获取LocalDate
实例并使用我给您的第二个示例。