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

C# DateTime.ToLocalTime() 메서드 완벽 가이드 – 로컬 시간 변환 방법

C#의 DateTime.ToLocalTime() 메서드는 현재 DateTime 객체의 값을 해당 시스템의 현지 시간(로컬 시간)으로 변환할 때 사용됩니다. 예를 들어 UTC(협정 세계시)로 저장된 시간을 사용자가 속한 시간대의 시간으로 바꿔야 할 때 유용하게 활용할 수 있습니다.

구문(Syntax)

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

public DateTime ToLocalTime ();

이 메서드는 매개변수를 받지 않으며, 변환된 현지 시간을 나타내는 DateTime 객체를 반환합니다.

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

다음은 DateTime.ToLocalTime() 메서드를 사용하여 현재 시간을 현지 시간으로 변환하는 예제입니다.

using System;

public class Demo {
   public static void Main() {
      DateTime d = DateTime.Now;
      Console.WriteLine("Date = {0}", d);
      DateTime res = d.ToLocalTime();
      Console.WriteLine("Local Time = {0}", res);
   }
}

출력 결과

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

Date = 10/16/2019 8:28:29 AM
Local Time = 10/16/2019 8:28:29 AM

예제 2: 특정 날짜와 시간 변환하기

이번에는 직접 지정한 날짜와 시간 값을 현지 시간으로 변환하는 예제를 살펴보겠습니다.

using System;

public class Demo {
   public static void Main() {
      DateTime d = new DateTime(2019, 10, 11, 9, 10, 45);
      Console.WriteLine("Date = {0}", d);
      DateTime res = d.ToLocalTime();
      Console.WriteLine("Local Time = {0}", res);
   }
}

출력 결과

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

Date = 10/11/2019 9:10:45 AM
Local Time = 10/11/2019 9:10:45 AM

참고 사항

DateTime.ToLocalTime() 메서드의 동작은 원본 DateTime 객체의 Kind 속성 값에 따라 달라집니다.

  • DateTimeKind.Utc: UTC 시간을 실행 환경의 현지 시간으로 변환합니다.
  • DateTimeKind.Local: 이미 현지 시간이므로 변환 없이 그대로 반환됩니다.
  • DateTimeKind.Unspecified: 시간 종류가 지정되지 않은 경우, 해당 값을 UTC로 간주하여 현지 시간으로 변환합니다.

따라서 정확한 시간 변환을 위해서는 DateTime 객체 생성 시 Kind 속성을 명확히 지정해 주는 것이 좋습니다.