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
세 날짜는 모두 신기원 이후 초 수가 동일합니다.