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

C# DateTimeOffset.FromFileTime() 메서드 – Windows 파일 시간을 현지 시간으로 변환하기

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나노초 단위로 측정되기 때문입니다.