Javaでファイルやディレクトリのタイムスタンプを変更したい場合Files.setLastModifiedTime
を利用すると便利です。たとえば指定のファイルのタイムスタンプを現在時刻にしたい場合は以下のようなコードになります。
FileTime now = FileTime.from(Instant.now());
Path file = Paths.get("/path/to/file");
Files.setLastModifiedTime(file, now);
Files.setLastModifiedTime
の第2引数には時刻を指定します。Javaで時間や日付というとDate
やCalendar
やLocalDateTime
あたりをよく利用しますが、ここではFileTime
というあまりなじみのないものを利用することに注意する必要があります。
環境情報
$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
$ javac -version
javac 11.0.3