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如何运作。
答案 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)
读取路径的基本属性。