我希望在我的计算机时区中获取最后修改日期(与我在Windows文件资源管理器中看到的相同)
System.out.println(myFile.lastModified()); // I get UTC
答案 0 :(得分:3)
返回:表示文件上次修改时间的长值,以纪元(格林威治标准时间00:00:00)为单位,以毫秒为单位, 1970年1月1日),如果文件不存在或者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
如果您想要更高的精度,可以使用:
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!");
}
答案 1 :(得分:1)
您只需使用ZonedDateTime
对象并将系统的默认时间偏移应用于该对象。
ZonedDateTime zt = ZonedDateTime.ofInstant(Instant.ofEpochMilli(myFile.lastModified()), ZoneId.systemDefault());
然后,您可以简单地打印出这个对象或进一步使用它。