在Java中获取文件的最后修改日期

Posted

技术标签:

【中文标题】在Java中获取文件的最后修改日期【英文标题】:Getting the last modified date of a file in Java 【发布时间】:2011-05-20 18:38:33 【问题描述】:

我正在制作一个基本的文件浏览器,并希望获取目录中每个文件的最后修改日期。我该怎么做?我已经有了每个文件的名称和类型(都存储在一个数组中),但也需要最后修改日期。

【问题讨论】:

【参考方案1】:

如在 java.io.File 的 javadocs 中:

new File("/path/to/file").lastModified()

【讨论】:

【参考方案2】:

Java 7 起,可以使用java.nio.file.Files.getLastModifiedTime(Path path)

Path path = Paths.get("C:\\1.txt");

FileTime fileTime;
try 
    fileTime = Files.getLastModifiedTime(path);
    printFileTime(fileTime);
 catch (IOException e) 
    System.err.println("Cannot get the last modified time - " + e);

printFileName 可以如下所示:

private static void printFileTime(FileTime fileTime) 
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy - hh:mm:ss");
    System.out.println(dateFormat.format(fileTime.toMillis()));

输出

10/06/2016 - 11:02:41

【讨论】:

答案正确且解释清楚,但请不要教年轻人使用早已过时且臭名昭著的SimpleDateFormat类。相反,从 Java 8 开始,使用FileTime.toInstant(),将Instant 转换为ZonedDateTime,然后直接打印或使用DateTimeFormatter 格式化。

以上是关于在Java中获取文件的最后修改日期的主要内容,如果未能解决你的问题,请参考以下文章