我想获取我的计算机时区的最后修改日期(与我在 Windows 文件资源管理器中看到的相同)
System.out.println(myFile.lastModified()); // I get UTC
Run Code Online (Sandbox Code Playgroud)
返回:一个长整型值,表示文件上次修改的时间,以纪元(1970 年 1 月 1 日 00:00:00 GMT)以来的毫秒为单位,如果文件不存在或发生 I/O 错误,则返回 0L
所以你需要将其转换为日期,如果你使用的是Java 8+,你可以使用java.time API,如下所示:
LocalDateTime date = LocalDateTime.ofInstant(
Instant.ofEpochMilli(myFile.lastModified()), ZoneId.systemDefault()
);
System.out.println(date);//example result : 2018-06-06T15:05:19.113
Run Code Online (Sandbox Code Playgroud)
如果你想要更高的精度,你可以使用:
File myFile = new File("pathname");
Long timeMs = myFile.lastModified();
if (timeMs != 0) {
LocalDateTime date = LocalDateTime.ofInstant(
Instant.ofEpochMilli(myFile.lastModified()), ZoneId.systemDefault()
);
System.out.println(date);
}else{
System.out.println("File not exist!");
}
Run Code Online (Sandbox Code Playgroud)