我没有从继承自File类的类中获得正确的最后修改。 我的方法是:
public Date getLastModification() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(lastModified());
Date dateRepresentation = cal.getTime();
return dateRepresentation;
}
当我在toString中调用此方法时,这将始终打印Thu Jan 01 01:00:00 CET 1970。 我回顾了文件的api,我不明白为什么会这样。你能帮我正确实施吗?
答案 0 :(得分:0)
你的逻辑对我有用。您应该确保您的文件存在
FileTest test = new FileTest("test.txt");
System.out.println("Existing:" + test.getLastModification());
FileTest test2 = new FileTest("");
System.out.println("Not existing: " + test2.getLastModification());
输出是:
Sat Mar 11 10:24:39 CET 2017
File does not exist
Thu Jan 01 01:00:00 CET 1970
与FileTest
类似:
public class FileTest extends File {
public FileTest(String pathname) {
super(pathname);
}
public Date getLastModification() {
if(!exists()){
System.out.println("File does not exist");
}
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(lastModified());
return cal.getTime();
}
}
答案 1 :(得分:0)
唯一的原因是文件不存在于您为其创建自定义文件对象的路径中,因此代码cal.setTimeInMillis(lastModified());
lastModified()
正在返回0,因此您将看到Calendar API的初始化本地日期。