获取文件的最后修改日期/时间作为本地日期/时间字符串

时间:2015-10-27 10:53:08

标签: java java-8 file-attributes

new File(url).lastModified()返回long,等于自纪元以来的毫秒数,这是基于GMT的。

将此转换为代表系统本地日期/时间的String的简单方法是什么?

如果你真的需要在这里看到我的尝试,但这是一个可怕的混乱,无论如何它是错的:

LocalDateTime.ofEpochSecond(new File(url).lastModified()/1000,0,ZoneOffset.UTC).atZone(ZoneId.of("UTC")).format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG))

超越LocalDateTime我根本不知道时间API如何运作。

1 个答案:

答案 0 :(得分:4)

要获取文件的上次修改时间,您应该使用Java NIO.2 API,它可以直接解决您的问题:

FileTime fileTime = Files.getLastModifiedTime(Paths.get(url));
System.out.println(fileTime); // will print date time in "YYYY-MM-DDThh:mm:ss[.s+]Z" format

如果要访问其他属性(例如上次访问时间,创建时间),可以使用Files.readAttributes(path, BasicFileAttributes.class)读取路径的基本属性。