我需要根據名稱找到文件的年齡。所有這些文件都遵循這樣的命名約定:DD-MM-YYYY。Java中的文件年齡
我可以製作一個程序,根據多少天/月過去等等,使用模數運算符來創建文件名,但我似乎無法包圍我的頭圍繞如何計算年齡從名稱。歡迎提供任何提示。
任何codesamples/-suggestions最好用Java。
問候 馬丁
我需要根據名稱找到文件的年齡。所有這些文件都遵循這樣的命名約定:DD-MM-YYYY。Java中的文件年齡
我可以製作一個程序,根據多少天/月過去等等,使用模數運算符來創建文件名,但我似乎無法包圍我的頭圍繞如何計算年齡從名稱。歡迎提供任何提示。
任何codesamples/-suggestions最好用Java。
問候 馬丁
您可以使用日期格式來解析日期以及格式之一。
未經測試:
String name = file.getName();
String datePortion = /*extract date portion*/;
DateFormat fmt = new SimpleDateFormat("dd-MM-yyyy");
Date fileDate = fmt.parse(datePortion);
long msBetweenDates = new Date().getTime() - fileDate.getTime();
你如何提取日期部分取決於你的文件命名方案,但它可能是那麼容易,因爲:
String datePortion = name.replaceAll(".*((\\d)+-(\\d)+-(\\d)+).*", "$1");
我想我已經設法使它像這樣工作,我只需要一種比較六個月的方式,因爲六個月以毫秒爲單位變成了一個大數字,並且殺死了整數上限。 – Martinnj 2011-06-10 13:43:19
@Martin:它可能會吹出一個int的界限,但是你會看到我使用了一個很長的應該沒有問題的東西。 – 2011-06-10 14:25:27
如果最後修改日期是不夠的,你可以使用:
File file = new File("C:/file.txt");
Date date = new Date(file.lastModified());
System.out.println(date);
我試過這個,但它不可用,因爲文件可以隨時修改,過濾器需要看看它們是什麼時候創建的。但是,謝謝。 – Martinnj 2011-06-10 13:48:36
您可以從文件名部分提取日期和日期,並使用SimpleDateFormat解析它。 – 2011-06-10 13:24:24
將文件創建日期和當前日期存儲在java.util.Date對象中,然後可以輕鬆減去兩者以瞭解文件的年齡。 – Pepe 2011-06-10 13:25:48