FileTime 객체는 Java의 Instant Object를 사용하여 LocalDateTime으로 변환됩니다.
LocalDateTime ldt = LocalDateTime.ofInstant( FILE_TIME.toInstant(), ZoneId.systemDefault());
이 예제에서는 현재 날짜가있는 Date 객체를 만듭니다. Object는 현재 시간을 사용하여 FileTime으로 변환됩니다. FileTime은 Instant를 사용하여 LocalDateTime으로 변환됩니다. 세 날짜는 모두 epoc로 변환되어 동일한 날짜를 표시합니다. LocalDateTime은 DateTimeFormatter 및 Medium 형식을 사용하여 형식화되며 값은 지역화되어 출력에 표시됩니다.
import java.nio.file.attribute.FileTime;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class FileTimeDateTime {
public static void main(String[] argv) {
// 날짜 만들기
Date firstDate = new Date();
// 날짜에서 FileTime 만들기
FileTime time = FileTime.fromMillis( firstDate.getTime() );
// FileTime을 LocalDateTime으로 변환하십시오
LocalDateTime ldt = LocalDateTime.ofInstant( time.toInstant(), ZoneId.systemDefault());
// 모든 날짜에 대한 신기원 이후 경과 한 시간 (초)을 표시합니다.
System.out.println("밀리 초 단위의 날짜 :\t" + firstDate.getTime() / 1000 );
System.out.println("FileTime (밀리 초) :\t" + time.toMillis() / 1000 );
System.out.println("LocalDateTime (밀리 초) :\t" + ldt.toEpochSecond( ZoneOffset.ofHours( TimeZone.getDefault().getRawOffset() / (3600*1000) ) ) );
System.out.println();
System.out.println("LocalDateTime을 String으로 표시 : "
+ ldt.format( DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
.withLocale( Locale.KOREAN ) ) );
}
}
밀리 초 단위의 날짜 : 1562370872
LocalDateTime을 String으로 표시 :1562370872
LocalDateTime 밀리 초: 1562374472
LocalDateTime을 String으로 표시 : 2019. 7. 5 오후 4:54:32
세 날짜는 모두 신기원 이후 초 수가 동일합니다.