C#에서는 ToFileTime() 메서드를 사용하여 현재 DateTime 개체의 값을 Windows 파일 시간(Windows file time)으로 손쉽게 변환할 수 있습니다. Windows 파일 시간은 1601년 1월 1일 자정(UTC)을 기준으로 경과한 100나노초(nanosecond) 단위의 틱(tick) 수를 나타내는 64비트 정수 값입니다.
예제 1: 현재 날짜와 시간 변환하기
다음 예제는 현재 시스템의 DateTime 값을 Windows 파일 시간으로 변환하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main() {
DateTime d = DateTime.Now;
Console.WriteLine("Date = {0}", d);
long res = d.ToFileTime();
Console.WriteLine("Windows file time = {0}", res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 10/16/2019 8:17:26 AM Windows file time = 132156874462559390
예제 2: 특정 날짜와 시간 변환하기
이번에는 특정 날짜와 시간을 지정하여 Windows 파일 시간으로 변환해 보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 05, 10, 6, 10, 25);
Console.WriteLine("Date = {0}", d);
long res = d.ToFileTime();
Console.WriteLine("Windows file time = {0}", res);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 5/10/2019 6:10:25 AM Windows file time = 132019422250000000
핵심 포인트
- ToFileTime() 메서드는 DateTime 개체의 값을 64비트 long 타입의 Windows 파일 시간으로 반환합니다.
- Windows 파일 시간의 기준 시점은 1601년 1월 1일 00:00:00(UTC)입니다.
- 변환된 값은 파일의 생성·수정 시각을 저장할 때 주로 활용됩니다.