C#에서 날짜/시간 및 시간대 작업
많은 프로그래밍 작업, 특히 테스트에서는 특정 시간대에 연결된 DateTime
개체를 생성해야 합니다. DateTime
생성자는 현지 시간, UTC 및 지정되지 않은 시간을 처리하지만 TimeZoneInfo
을 사용하면 보다 정확한 제어가 가능합니다.
TimeZoneInfo 활용
DateTime
생성자의 TimeZone
속성에만 의존하는 대신 TimeZoneInfo
은 뛰어난 시간대 관리 및 변환 기능을 제공합니다.
사용자 정의 날짜/시간 구조
이 예에서는 사용자 정의 구조 DateTimeWithZone
를 사용하여 DateTime
및 관련 시간대
<code class="language-csharp">public struct DateTimeWithZone { private readonly DateTime utcDateTime; private readonly TimeZoneInfo timeZone; public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone) { var dateTimeUnspec = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified); utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspec, timeZone); this.timeZone = timeZone; } public DateTime UniversalTime => utcDateTime; public TimeZoneInfo TimeZone => timeZone; public DateTime LocalTime => TimeZoneInfo.ConvertTime(utcDateTime, timeZone); }</code>
실습
태평양 표준시(PST) 시간대에 DateTimeWithZone
개체를 생성하려면:
<code class="language-csharp">var pstDateTime = new DateTimeWithZone(new DateTime(2023, 1, 1), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));</code>
이 접근 방식을 사용하면 특정 시간대의 DateTime
객체에 대한 원활한 작업이 가능하며 필요에 따라 UTC와 현지 시간 간의 변환이 용이해집니다.
위 내용은 C#의 특정 시간대로 DateTimes를 어떻게 만들려면?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!