Java NIO 对象到日期的转换

Java NIO object to date conversion

我试图在 java 中获取文件的最后访问权限和创建日期,因此我使用的是 nio,但输出格式如下:

Last access time :: 2015-02-26T15:22:02.988862Z 
Creation time :: 2015-02-26T15:22:02.988862Z 
last modified time :: 2015-02-26T16:06:52.022666Z 

是否可以将它们转换为 Date 或 Calender 对象,以便我可以获得正确的格式作为输出?

这是我的代码,

package com.home.test;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;

public class TestRun {   

    public static void main(String[] args) {

        TestRun tr = new TestRun();
        tr.run();

    }
    private void run() {

        File file = new File("D:/Test_Folder/File1.txt");
        Path filPath = file.toPath();


        BasicFileAttributes attrib = null;

        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");

            attrib = Files.readAttributes(filPath, BasicFileAttributes.class);


            System.out.println("Last access time :: "+attrib.lastAccessTime());
            System.out.println("Creation time :: "+attrib.creationTime());
            System.out.println("last modified time :: "+attrib.lastModifiedTime());


        } catch (Exception e) {

            System.out.println("Error thrown"+e.toString());
        }

    }
}

那些方法 return FileTime values. FileTime has a toMillis 方法 return 其值以毫秒为单位 long。您可以从中创建一个 Date 对象。

嗯,不,时间戳以 FileTime 对象的形式出现。通过将这些对象添加到 Strings,您将获得这些对象的 String 表示。

这些对象将相同的基础时间表示(自纪元以来的毫秒数)包装为 DateCalendar 对象,所以如果您愿意,是的,您可以获得其中之一。例如:

Calendar atime = Calendar.newInstance();
atime.setTimeInMillis(attrib.lastAccessTime().toMillis());

如果您更喜欢 Date 的形式,那么您可以继续

Date atimeAsDate = atime.getTime();