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

C#에서 지정된 Windows 파일 시간을 현지 시간으로 변환하는 방법

Windows 파일 시간은 1601년 1월 1일 자정(UTC)을 기준으로 경과한 100나노초 간격의 수를 나타내는 값입니다. C#에서는 DateTimeOffset.FromFileTime() 메서드를 사용하여 이 값을 해당하는 현지 시간으로 손쉽게 변환할 수 있습니다.

기본 사용 예제

다음 예제에서는 파일 시간 값 0을 현지 시간으로 변환합니다. 파일 시간의 기준점이 1601년이므로 결과도 해당 날짜로 표시됩니다.

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

파일 시간 값이 있는 경우의 예제

이번에는 실제 경과 시간이 포함된 파일 시간 값 200000000을 변환해 보겠습니다. 이 값은 약 20초에 해당하므로 기준 시각에서 20초가 지난 시간이 출력됩니다.

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

핵심 정리

  • DateTimeOffset.FromFileTime(long fileTime) 메서드는 Windows 파일 시간을 현지 시간 기준의 DateTimeOffset으로 변환합니다.
  • 파일 시간은 1601년 1월 1일 12:00 UTC를 기준으로 하는 100나노초 단위의 누적 값입니다.
  • 변환된 결과는 시스템의 현재 표준 시간대 설정에 따라 자동으로 조정됩니다.
  • 반대로 현지 시간을 파일 시간으로 변환하려면 ToFileTime() 메서드를 사용할 수 있습니다.