从 Java 获取具有毫秒级分辨率的文件 mtime
2022-09-03 14:05:40
当我使用 从 Java 读取文件时,返回值被截断为整秒。我知道这适用于其他系统以获得毫秒级分辨率的mtimes,那么我的有什么不同呢?mtime
Files.getLastModifiedTime
这是一个完整的独立测试,可以编译和运行:
import java.nio.file.attribute.FileTime;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test {
public static void main(String[] args) throws java.io.IOException {
FileTime timestamp = Files.getLastModifiedTime(Paths.get("/tmp/test"));
System.out.println(timestamp.toMillis());
}
}
输出是(使用我的特定测试文件),而显示:1405602038000
ls
$ ls --full-time /tmp/test
-rw-rw-r-- 1 daniel daniel 0 2014-07-17 16:00:38.413008992 +0300 /tmp/test
我希望Java输出是。1405602038413
我在 Linux 上运行 ext4。我尝试了openjdk 1.7和Oracle jdk 1.8。