C#의 DateTimeOffset.ToLocalTime() 메서드는 현재 DateTimeOffset 개체가 나타내는 시각을 컴퓨터의 현지 표준 시간대 기준 시각으로 변환하여, 새로운 DateTimeOffset 개체 형태로 반환합니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public DateTimeOffset ToLocalTime ();
이 메서드는 매개변수를 받지 않으며, 현지 시간대(표준 시간대 및 일광 절약 시간제 포함)가 반영된 DateTimeOffset 개체를 반환합니다. 잘못된 값이 전달되어도 별도의 예외를 발생시키지 않습니다.
예제 1
먼저 DateTimeOffset.ToLocalTime() 메서드를 사용하는 간단한 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTimeOffset local;
DateTimeOffset dateTimeOffset = DateTimeOffset.Now;
Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
local = dateTimeOffset.ToLocalTime();
Console.WriteLine("Local Time = "+local.ToString());
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeOffset = 10/16/2019 11:20:35 AM +00:00 Local Time = 10/16/2019 11:20:35 AM +00:00
이 예제에서는 DateTimeOffset.Now로 현재 시각을 가져왔기 때문에, 시스템이 이미 현지 표준 시간대를 사용하고 있는 경우 변환 전후의 값이 동일하게 표시됩니다.
예제 2
이번에는 특정 날짜와 시간을 지정한 DateTimeOffset 개체를 만든 뒤, 현지 시간으로 변환해 보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTimeOffset local;
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 12, 6, 10, 20, TimeSpan.Zero);
Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
local = dateTimeOffset.ToLocalTime();
Console.WriteLine("Local Time = "+local.ToString());
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTimeOffset = 10/12/2019 6:10:20 AM +00:00 Local Time = 10/12/2019 6:10:20 AM +00:00
두 번째 예제에서는 TimeSpan.Zero를 사용해 UTC(+00:00) 기준의 시각을 명시적으로 생성했습니다. 실행 환경의 표준 시간대가 UTC와 동일한 경우 결과가 같게 나오지만, 한국(KST, UTC+09:00)처럼 다른 시간대에서 실행하면 ToLocalTime() 호출 후 시각과 오프셋이 자동으로 조정되어 표시됩니다.