Date 객체는 FileTime의 에포크 이후의 밀리 초 수를 사용하여 만들 수 있습니다.
Date newDate = new Date( filetime.toMillis() );
이 예제에서는 firstDate라는 Date를 만들고 매개 변수를 생성자에 전달하지 않고이 방법은 현재 날짜와 시간을 사용합니다. 이 날짜는 FileTime 객체의 fromMillis 메서드를 사용하여 FileTime으로 변환됩니다. 두 번째 Date 객체는 생성자에서 FileTime 이후의 시간 (밀리 초)을 전달하여 생성됩니다. 세 개의 값은 출력에 기록되어 동일 함을 나타냅니다. 마지막 테스트에서 값이 동일한 지 확인한 다음 SimpleDateFormat을 사용하여 Date 형식을 지정합니다. 사람이 읽을 수있는 값이 출력에 기록됩니다.
import java.nio.file.attribute.FileTime;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTimeDate {
public static void main(String[] argv) {
Date firstDate = new Date();
FileTime time = FileTime.fromMillis( firstDate.getTime() );
Date newDate = new Date( time.toMillis() );
System.out.println("firstDate milliseconds:\t" + firstDate.getTime() );
System.out.println("FileTime milliseconds:\t" + time.toMillis() );
System.out.println("newDate milliseconds:\t" + newDate.getTime() );
if( time.toMillis() == firstDate.getTime() && newDate.getTime() == time.toMillis()){
String pattern = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
System.out.println("All the Dates are equal: " + simpleDateFormat.format( firstDate ) );
}
}
}
firstDate milliseconds: 1525827617236
FileTime milliseconds: 1525827617236
newDate milliseconds: 1525827617236
All the Dates are equal: 2018-05-08 18:00:17
FileTime 객체는 불변이며 일단 생성되면 변경되지 않습니다. 이렇게하면이 객체를 사용할 때 값이 변경되지 않습니다. Date 객체는 스레드로부터 안전하지 않습니다.