java如何从文件时间戳中查找前几天的文件

java如何从文件时间戳中查找前几天的文件,java,Java,我有两个java程序 1) 第一个程序每天运行并生成文件abc_currenttimestamp.csv(例如abc_1357615107) 2) 第二个程序每天运行并读取第一个程序生成的文件。但它必须读取的文件是前几天的文件,而不是今天生成的文件 例如,第一个程序在1月9日和1月10日生成文件等。 第二个程序从10号开始运行,应该读取时间戳为1月9号的文件 一种方法是第二个程序检查所有文件的时间戳,并确定它是否是前几天的时间戳。我不知道用Java怎么做 另一种方法是,第一个程序将文件名写入一个

我有两个java程序

1) 第一个程序每天运行并生成文件abc_currenttimestamp.csv(例如abc_1357615107)

2) 第二个程序每天运行并读取第一个程序生成的文件。但它必须读取的文件是前几天的文件,而不是今天生成的文件

例如,第一个程序在1月9日和1月10日生成文件等。 第二个程序从10号开始运行,应该读取时间戳为1月9号的文件

一种方法是第二个程序检查所有文件的时间戳,并确定它是否是前几天的时间戳。我不知道用Java怎么做

另一种方法是,第一个程序将文件名写入一个字段,第二个程序通过读取该字段来知道文件名。但问题是,每次第一个程序每天运行时,它都会用今天的文件名覆盖此字段


谢谢

你可以简单地玩

file.lastModified();

或者您只需在文件名本身中添加日期和时间,如
ddmmyyyy.csv
,就可以轻松检查它是否存在。

我喜欢从文件名中获取时间戳的想法。这样,有人手动修改文件不会打乱您的过程

这在某种程度上取决于时间戳值的类型。如果它的java使用下面的代码,如果它的unix乘以1000,那么就这样做

Calendar today = Calendar.getInstance(); // use this to get todays date (and time)

Calendar mydate = Calendar.getInstance(); // this uses the timestamp for comparing
mydate.setTimeInMillis(timestamp);

// This prints out the date and shows how to get values to compare. You can also 
//  subtract one day from today's date to handle rollover of months and years.
out.println( mydate.get(Calendar.DAY_OF_MONTH)+"."+mydate.get(Calendar.MONTH)+"."+mydate.get(Calendar.YEAR));
这里有一些讨论:


你的两个想法都应该行得通。选择一个,如果您在实施过程中遇到问题,请随时再次询问。谢谢。第二个想法对我来说很容易实现。但是它有一个问题,即字段值被今天的文件时间戳覆盖,而第二个程序希望字段值具有昨天的时间戳。使用两个字段存储最后两个时间戳我不明白有两个字段存储会有什么帮助