java 中通过 file 类的 lastmodified() 方法获取文件最后修改时间。该方法返回一个表示毫秒值的 long 类型数据,代表从 1970 年 1 月 1 日 00:00:00 gmt 到文件最后一次被修改的时间戳。调用此方法后,通常使用 date 或 instant 类将其转换为可读的日期格式。

lastModified() 返回的具体数值是什么
lastModified() 方法返回的是自 Unix 纪元(1970-01-01T00:00:00Z)以来的毫秒数。这是一个标准的长整型时间戳,可以直接用于计算时间差或存储到数据库中。

import java.io.File;
import java.util.Date;
public class Main {
public static void main(String[] args) {
File file = new File("example.txt");
long timestamp = file.lastModified();
Date date = new Date(timestamp);
System.out.println(date.toString());
}
}
如何判断文件是否成功获取了修改时间
在调用 lastModified() 时,如果文件不存在或权限不足,该方法会返回 0L。因此,必须检查返回值是否为 0 来确认操作是否成功。此外,还可以结合 exists() 和 isFile() 方法来确保目标是一个有效的文件。

import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("nonexistent.txt");
long timestamp = file.lastModified();
if (timestamp == 0 && !file.exists()) {
System.out.println("文件不存在或无法访问");
} else {
System.out.println("最后修改时间: " + timestamp);
}
}
}
基于 lastModified() 返回 0 时的具体排查问题
当 lastModified() 返回 0 时,可能是因为文件确实从未被修改过(即创建时间与修改时间相同且为 Unix 纪元),或者是因为文件系统不支持该功能。在实际开发中,更常见的情况是文件路径错误或权限问题。建议先使用 file.exists() 验证文件是否存在,再检查读取权限。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











