在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中获取文件的最后修改日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在文件系统中获取最后修改的日期和时间?

获取git目录中文件的最后修改日期

如何在Filesystem中获取最后修改日期和时间?

如何在 Go 中获取文件的最后访问日期和时间?

获取文件最后修改日期(资源管理器值不是 cmd 值)

如何根据特定日期获取最后修改的文件并导入python脚本[重复]