>백엔드 개발 >C++ >C#의 특정 시간대로 DateTimes를 어떻게 만들려면?

C#의 특정 시간대로 DateTimes를 어떻게 만들려면?

Susan Sarandon
Susan Sarandon원래의
2025-01-26 04:31:08291검색

How Can I Create DateTimes with Specific Time Zones in C#?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.