ファイルの日付と時刻のプロパティは、nioパッケージのFilesオブジェクトのsetAttributeメソッドを使用して設定できます。
java.nio.file.Files.setAttribute(file.toPath(), "creationTime", time);
この例では、Fileオブジェクトを使用してファイルをロードします。 これは、パターンStringで定義された日付パターンを持つSimpleDateFormatを使用して日付と時刻の書式を設定します。 その後、ミリ秒の値を使用して日付がFileTimeに変換されます。 FileTimeの日付は、ファイルのパスを使用して属性として設定されます。 最終更新時刻、最終アクセス時刻、作成時刻は、ファイルの属性名を使用して設定します。
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.attribute.FileTime; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class FileUpdateDate { public static void main(String[] argv) { File file = new File("V:/tmp/test.txt"); try { String pattern = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); Date timeToSet = simpleDateFormat.parse( "2015-12-01 10:00:00" ); FileTime time = FileTime.fromMillis( timeToSet.getTime() ); Files.setAttribute(file.toPath(), "lastModifiedTime", time); Files.setAttribute(file.toPath(), "lastAccessTime", time); Files.setAttribute(file.toPath(), "creationTime", time); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } }
FileTimeオブジェクトは、Dateオブジェクトからのミリ秒単位で作成されます。 これは1970年1月1日のミッドナイトGMT時代からのミリ秒数です。 このクラスのインスタンスは不変またはスレッドセーフです。 一度作成されるか、別のスレッドによって変更することはできません。 異なる値を設定するには、新しいオブジェクトをインスタンス化する必要があります。