Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# DateTime.ToFileTimeUtc() 메서드 완벽 정리 – 날짜를 Windows 파일 시간으로 변환하는 방법

C#의 DateTime.ToFileTimeUtc() 메서드는 현재 DateTime 객체의 값을 Windows 파일 시간(Windows file time)으로 변환하는 데 사용됩니다.

Windows 파일 시간은 64비트 정수 값으로, 서기 1601년 1월 1일 자정(UTC) 이후로 경과한 시간을 100나노초(nanosecond) 간격의 수로 나타낸 것입니다. 이 형식은 Windows 운영체제에서 파일의 생성, 접근, 수정 시각을 기록할 때 내부적으로 사용되며, UTC 기준으로 계산되기 때문에 시간대(time zone)의 영향을 받지 않는다는 장점이 있습니다.

구문(Syntax)

메서드의 기본 구문은 다음과 같습니다.

public long ToFileTimeUtc ();

매개변수는 받지 않으며, 변환된 Windows 파일 시간을 long 형식의 정수로 반환합니다.

예제 1: 지정된 날짜 변환하기

다음은 DateTime.ToFileTimeUtc() 메서드를 사용하여 특정 날짜를 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.ToFileTimeUtc();
        Console.WriteLine("Windows file time (Utc) = {0}", res);
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Date = 5/10/2019 6:10:25 AM
Windows file time (Utc) = 132019422250000000

예제 2: 현재 시간 변환하기

이번에는 현재 시스템 시간(DateTime.Now)을 Windows 파일 시간으로 변환해 보겠습니다.

using System;
public class Demo {
    public static void Main() {
        DateTime d = DateTime.Now;
        Console.WriteLine("Date = {0}", d);
        long res = d.ToFileTimeUtc();
        Console.WriteLine("Windows file time (Utc) = {0}", res);
    }
}

출력 결과

실행 시점에 따라 결과는 달라지며, 아래는 실행 당시의 출력 예시입니다.

Date = 10/16/2019 8:25:58 AM
Windows file time (Utc) = 132156879583999032

참고 사항

  • 변환 대상 날짜가 1601년 1월 1일(UTC)보다 이전이면 ArgumentOutOfRangeException 예외가 발생합니다.
  • 현지 시간대를 반영하여 변환하려면 ToFileTime() 메서드를, UTC 기준으로 변환하려면 ToFileTimeUtc() 메서드를 사용하세요.