C#의 DateTimeOffset.FromFileTime() 메서드는 지정된 Windows 파일 시간을 이에 상응하는 현지(local) 시간으로 변환할 때 사용합니다.
Windows 파일 시간이란 1601년 1월 1일 자정(UTC)을 기준으로 경과한 100나노초(nanosecond) 간격의 틱(tick) 수를 의미하며, 파일 생성·수정 시각 등을 기록할 때 널리 활용되는 형식입니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public static DateTimeOffset FromFileTime (long time);
매개변수 time에는 틱 단위의 Windows 파일 시간(long 형식)을 전달합니다. 반환값은 해당 파일 시간에 대응하는 DateTimeOffset 객체입니다.
예제 1
파일 시간 값으로 0을 전달하면 기준 시점인 1601년 1월 1일 0시가 반환되는 것을 확인할 수 있습니다.
using System;
public class Demo {
public static void Main() {
DateTimeOffset offset = DateTimeOffset.FromFileTime(0);
Console.WriteLine("DateTimeOffset = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss}", offset);
}
}출력 결과
DateTimeOffset = 01 January 1601, 12:00:00
예제 2
이번에는 파일 시간 값으로 200000000을 전달해 보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTimeOffset offset = DateTimeOffset.FromFileTime(200000000);
Console.WriteLine("DateTimeOffset = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss}", offset);
}
}출력 결과
DateTimeOffset = 01 January 1601, 12:00:20
출력 결과를 보면 기준 시점인 1601년 1월 1일 12:00:00에서 정확히 20초가 경과한 시간이 반환되었습니다. 이는 파일 시간이 100나노초 단위로 측정되기 때문입니다.