C#의 DateTime.SpecifyKind() 메서드는 지정된 DateTime 객체와 동일한 틱(ticks) 값을 가지면서, 새로운 DateTimeKind 값에 따라 현지 시간(Local), 협정 세계시(UTC), 또는 미지정(Unspecified)으로 분류되는 새로운 DateTime 객체를 생성하는 데 사용됩니다.
문법(Syntax)
DateTime.SpecifyKind() 메서드의 기본 문법은 다음과 같습니다.
public static DateTime SpecifyKind(DateTime d, DateTimeKind kind);
매개변수 설명
- d: Kind 속성을 지정할 대상이 되는 DateTime 객체입니다.
- kind: 새 객체가 현지 시간(Local), UTC, 또는 둘 다 아님(Unspecified)을 나타내는 DateTimeKind 열거형 값 중 하나입니다.
예제 1: Local 시간으로 지정하기
다음은 DateTime.SpecifyKind() 메서드를 사용하여 날짜를 현지 시간(Local)으로 지정하는 예제입니다.
using System;
using System.Globalization;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 10, 11, 11, 10, 42);
DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Local);
Console.WriteLine("Kind = " + res.Kind);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Kind = Local
예제 2: UTC 시간으로 지정하기
이번에는 동일한 메서드를 사용하여 날짜를 UTC 시간으로 지정하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 11, 25, 10, 20, 35);
DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Utc);
Console.WriteLine("Kind = " + res.Kind);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Kind = Utc
정리
DateTime.SpecifyKind() 메서드는 기존 DateTime 값의 실제 시간(틱)은 변경하지 않고, 해당 시간이 어떤 종류의 시간인지에 대한 정보만 새롭게 지정합니다. 따라서 서버 간 시간대 변환이나 데이터 직렬화 작업 시 시간 정보의 일관성을 유지하는 데 매우 유용하게 활용될 수 있습니다.