我正在尝试更新特定文件夹的上次修改日期,这是我得到的:
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));
}
我只是将这段代码放在一个测试用例中,所以不必担心调用此方法等。
我长时间解析该日期格式时遇到错误,设置上次修改的日期和时间使用什么格式?
答案 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)以来的毫秒数为单位