如何使用设置的上次修改日期和时间触摸当前时间的文件夹?

时间:2018-12-19 15:19:32

标签: java

我正在尝试更新特定文件夹的上次修改日期,这是我得到的:

public void touchFolder(){
    File folderToTest = new File("C:\\Temp");
    SimpleDateFormat dateFormatUtc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    dateFormatUtc.setTimeZone(TimeZone.getTimeZone("UTC"));
    String newTime = dateFormatUtc.format(new Date());
    folderToTest.setLastModified(Long.parseLong(newTime));
}

我只是将这段代码放在一个测试用例中,所以不必担心调用此方法等。

我长时间解析该日期格式时遇到错误,设置上次修改的日期和时间使用什么格式?

3 个答案:

答案 0 :(得分:9)

这是示例from the documentation,使用java.nio.file.Files

Path path = ...
FileTime now = FileTime.fromMillis(System.currentTimeMillis());
Files.setLastModifiedTime(path, now);

答案 1 :(得分:6)

我认为您应该只做folderToTest.setLastModified(System.currentTimeMillis());

答案 2 :(得分:5)

在您的代码newTime中是格式化日期2018-12-19 15:21:31,无法将其解析为Long。您要做的是提供时间(以毫秒为单位),例如:

Date d = new Date();
file.setLastModified(d.getTime());

按照File.setLastModified()方法javadoc:

  

time-新的上次修改时间,以自该时间段(格林尼治标准时间1970年1月1日00:00:00 GMT)以来的毫秒数为单位