C#의 DateTime.FromFileTimeUtc() 메서드는 지정된 Windows 파일 시간(file time)을 그에 상응하는 UTC(협정 세계시) 시간으로 변환하는 정적(static) 메서드입니다.
문법(Syntax)
메서드의 기본 문법은 다음과 같습니다.
public static DateTime FromFileTimeUtc (long time);
여기서 매개변수 time은 Windows 파일 시간을 나타내며, 틱(tick) 단위로 표현됩니다. 하나의 틱은 100나노초(nanosecond)에 해당합니다.
Windows 파일 시간은 서기 1601년 1월 1일 자정(UTC)을 기준점(epoch)으로 삼으며, 이 기준점부터 경과한 100나노초 간격의 개수로 측정됩니다. 따라서 값이 0이면 곧 1601년 1월 1일 00:00:00 UTC를 의미합니다.
예제 1
다음은 DateTime.FromFileTimeUtc() 메서드를 구현한 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime d1 = DateTime.FromFileTimeUtc(6500000000000);
System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ",d1);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTime = 08 January 1601, 12:33:20
예제 2
이번에는 서로 다른 두 개의 값을 사용하여 DateTime.FromFileTimeUtc() 메서드를 구현해 보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTime d1 = DateTime.FromFileTimeUtc(0);
DateTime d2 = DateTime.FromFileTimeUtc(850000000000000);
Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ",d1);
Console.WriteLine("New DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ",d2);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTime = 01 January 1601, 12:00:00 New DateTime = 11 September 1603, 07:06:40
출력 결과에서 확인할 수 있듯이, 파일 시간 값이 0일 경우 Windows 파일 시간의 기준점인 1601년 1월 1일 12:00:00이 반환됩니다. 전달되는 값이 커질수록 기준점으로부터 경과된 시간만큼 더해진 날짜와 시간이 계산되어 반환됩니다.