java ファイルのタイムスタンプを取得する

java ファイルのタイムスタンプを取得する

javaで、ファイルのタイムスタンプを取得する手順を記述してます。

環境

  • OS windows11 home
  • java 17.0.2

手順

ファイルのタイムスタンプを取得するには、「Files.getLastModifiedTime」を使用します。
※取得される日時はUTCになります。

Files.getLastModifiedTime(ファイルパス)

実際に使用してみます。
※ここではUTCから JST (日本標準時) に変換も行ってます。

import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.io.IOException;
import java.nio.file.attribute.FileTime;
import java.time.Instant;
import java.time.ZoneId;
import java.time.LocalDateTime;

public class App {
  public static void main(String[] args) throws Exception {

    Path path = Paths.get("C:/java/test/src/App.java");    

    try {

      System.out.println(Files.getLastModifiedTime(path)); // 2022-05-30T00:47:12.0593146Z

      Instant instant = Files.getLastModifiedTime(path).toInstant();
      LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
      System.out.println(localDateTime); // 2022-05-30T09:47:12.059314600

    } catch (IOException e) {
      System.out.println(e);
    }
  }
  
}

取得されていることが確認できます。

存在しないファイルを指定

存在しないファイルを指定すると「NoSuchFileException」が発生します。