获取文件的最后修改日期/时间作为本地日期/时间字符串
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是如何工作的。
要获取文件的上次修改时间,您应该使用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)
读取路径的基本属性。