0

我有两个java程序

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

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

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

一种方法可能是第二个程序检查所有文件的时间戳并查找它是否是前几天的时间戳。我不知道如何在 Java 中做到这一点。

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

谢谢!

4

2 回答 2

0

你可以简单地玩

file.lastModified();

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

于 2013-01-09T18:27:39.373 回答
0

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

这有点取决于您拥有什么样的时间戳值。如果它的 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));

这里有一些讨论:

Java:来自unix时间戳的日期

于 2013-01-09T18:28:11.327 回答