Java 8 BasicFileAttributes.creationTime()返回不同的小时值

Yon*_*ena 2 java java-8

我有这个使用Java 8的代码片段来获取特定文件的创建日期时间:

    Path path = Paths.get("D:\\SampleFile.txt");
    BasicFileAttributes attributes = null;
    try {
        attributes = Files.readAttributes(path, BasicFileAttributes.class);
        System.out.println("Creation Date Time: " + attributes.creationTime());
    } catch(IOException ioe) {
        ioe.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

:我使用作为例子的文件的真实创建小时从所述一个以上代码段显示不同6小时
实时日期时间:2017-02-05T 10:34:28
这一代码时间:2017-02-05T 16:34:28.247156Z

有谁知道这种差异的原因是什么以及如何获得正确的创建日期时间值?

先感谢您!

shm*_*sel 6

FileTime班假设UTC作为默认的打印时区.如果要在系统的时区中打印它,可以将其转换为ZonedDateTime如下所示:

attributes.creationTime().toInstant().atZone(ZoneId.systemDefault())
Run Code Online (Sandbox Code Playgroud)