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 객체는 스레드로부터 안전하지 않습니다.