방법: 조정 규칙을 사용하지 않고 표준 시간대 만들기

애플리케이션에 필요한 정확한 표준 시간대 정보는 여러 가지 이유로 특정 시스템에 없을 수 있습니다.

  • 표준 시간대는 로컬 시스템의 레지스트리에 정의된 적이 없습니다.

  • 표준 시간대에 대한 데이터가 레지스트리에서 수정되거나 제거되었습니다.

  • 표준 시간대는 존재하지만 특정 역사적 기간의 표준 시간대 조정에 대한 정확한 정보는 없습니다.

이러한 경우 CreateCustomTimeZone 메서드를 호출하여 애플리케이션에 필요한 표준 시간대를 정의할 수 있습니다. 이 메서드의 오버로드를 사용하여 조정 규칙이 있거나 없는 표준 시간대를 만들 수 있습니다. 표준 시간대에서 일광 절약 시간을 지원하는 경우 고정 또는 부동 조정 규칙을 사용하여 조정을 정의할 수 있습니다. (이러한 용어에 대한 정의는 다음의 표준 시간대 개요 섹션의 “표준 시간대 용어” 섹션을 참조하세요.)

Important

CreateCustomTimeZone메서드를 호출하여 만든 사용자 지정 표준 시간대는 레지스트리에 추가되지 않습니다. 대신 CreateCustomTimeZone 메서드 호출에서 반환된 개체 참조를 통해서만 액세스할 수 있습니다.

이 토픽에서는 조정 규칙 없이 표준 시간대를 만드는 방법을 보여줍니다. 일광 절약 시간 조정 규칙을 지원하는 표준 시간대를 만들려면 방법: 조정 규칙을 사용하여 표준 시간대 만들기를 참조하세요.

조정 규칙 없이 표준 시간대를 만들려면

  1. 표준 시간대의 표시 이름을 정의합니다.

    표시 이름은 표준 시간대의 UTC(협정 세계시)의 오프셋을 괄호로 묶은 다음 표준 시간대, 표준 시간대의 하나 이상의 도시 또는 표준 시간대의 하나 이상의 국가 또는 지역을 식별하는 문자열을 따르는 표준 형식을 따릅니다.

  2. 새 표준 시간대 표준 시간의 이름입니다. 일반적으로 이 문자열은 표준 시간대의 식별자로도 사용됩니다.

  3. 표준 시간대의 표준 이름과 다른 식별자를 사용하려면 표준 시간대 식별자를 정의합니다.

  4. UTC에서 표준 시간대의 오프셋을 정의하는 TimeSpan 개체를 인스턴스화합니다. UTC보다 늦은 시간이 있는 표준 시간대에는 양수 오프셋이 있습니다. UTC보다 이전 시간이 있는 표준 시간대에는 음수 오프셋이 있습니다.

  5. TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) 메서드를 호출하여 새 표준 시간대를 인스턴스화합니다.

예시

다음 예제에서는 조정 규칙이 없는 남극 Mawson에 대한 사용자 지정 표준 시간대를 정의합니다.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time";
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}",
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time"
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

DisplayName 속성에 할당된 문자열은 표준 형식을 따릅니다. 이 형식은 UTC에서 표준 시간대의 오프셋 뒤에 표준 시간대에 대한 친숙한 설명이 뒤에 옵니다.

코드 컴파일

이 예제에는 다음 사항이 필요합니다.

  • 다음 네임스페이스를 가져올 수 있습니다.

    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    

참고 항목