How to get file last modified date in Java

Posted in :

使用 attr 可以取得 OS 的3個 time, create/access/modified, 如果直接使用 File 的屬性, 只能取得 last modified time.

解法1:

Path file = Paths.get(fileName);
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());

解法2:

File file = new File(fileName);
System.out.println("Before Format : " + file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
System.out.println("After Format : " + sdf.format(file.lastModified()));

有件事情還滿神奇的, 在 bucket 上的目錄, lastModified 會變成被 mounted 時候的時間, 但是如果又實際去存取過這些目錄之後, 他的時間居然會變成原本實際的最後修改時間.

例如: 一開始 mount 後, 列出的時間是 2023-05-11

在實際存取過 folder1 目錄裡的檔案後, folder1 的時間又變回去 2023-04-18

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *