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

Tif*_*any 10 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));
}
Run Code Online (Sandbox Code Playgroud)

我只是将此代码放在测试用例中,所以不要担心调用此方法等.

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

Rad*_*def 9

这是文档中的一个示例,使用java.nio.file.Files:

Path path = ...
FileTime now = FileTime.fromMillis(System.currentTimeMillis());
Files.setLastModifiedTime(path, now);
Run Code Online (Sandbox Code Playgroud)


小智 6

我想你应该这样做 folderToTest.setLastModified(System.currentTimeMillis());


Kar*_*cki 5

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

Date d = new Date();
file.setLastModified(d.getTime());
Run Code Online (Sandbox Code Playgroud)

按照File.setLastModified()方法javadoc:

time - 新的上次修改时间,以纪元(自格林威治标准时间1970年1月1日00:00:00 00:00)开始的毫秒数测量