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

C# DateTime.FromFileTimeUtc() 메서드 – Windows 파일 시간을 UTC로 변환하기

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이 반환됩니다. 전달되는 값이 커질수록 기준점으로부터 경과된 시간만큼 더해진 날짜와 시간이 계산되어 반환됩니다.