最后修改文件的问题

时间:2017-03-11 09:03:43

标签: java file date calendar last-modified

我没有从继承自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,我不明白为什么会这样。你能帮我正确实施吗?

2 个答案:

答案 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的初始化本地日期。