이 클래스는 TimeZoneInfo 표준 시간대 인식 애플리케이션의 생성을 간소화합니다. 이 클래스는 TimeZone 현지 표준 시간대 및 UTC(협정 세계시) 작업을 지원합니다. 클래스는 TimeZoneInfo 이러한 영역과 레지스트리에 미리 정의된 정보에 대한 모든 표준 시간대를 모두 지원합니다. 시스템에 정보가 없는 사용자 지정 표준 시간대를 정의하는 데 사용할 TimeZoneInfo 수도 있습니다.
표준 시간대 필수 요소
표준 시간대는 동일한 시간이 사용되는 지리적 지역입니다. 일반적으로 항상 그렇지는 않지만 인접한 표준 시간대는 1시간 떨어져 있습니다. 세계 표준 시간대의 시간은 UTC(협정 세계시)의 오프셋으로 표현될 수 있습니다.
전 세계의 많은 표준 시간대는 일광 절약 시간을 지원합니다. 일광 절약 시간제는 봄이나 초여름에 시간을 1시간 앞당기고 늦은 여름이나 가을에 정상(또는 표준) 시간으로 돌아가서 일광 시간을 최대화하려고 합니다. 표준시에서 이러한 변경 내용을 조정 규칙이라고 합니다.
특정 표준 시간대의 일광 절약 시간제 전환은 고정 또는 부동 조정 규칙에 의해 정의될 수 있습니다. 고정 조정 규칙은 일광 절약 시간제로의 전환이 매년 발생하는 특정 날짜를 설정합니다. 예를 들어 매년 10월 25일에 발생하는 일광 절약 시간에서 표준 시간으로의 전환은 고정 조정 규칙을 따릅니다. 훨씬 더 일반적인 부동 조정 규칙은 일광 절약 시간제로 전환하기 위해 특정 월의 특정 요일을 설정합니다. 예를 들어 3월 3일 일요일에 발생하는 표준 시간에서 일광 절약 시간으로의 전환은 부동 조정 규칙을 따릅니다.
조정 규칙을 지원하는 표준 시간대의 경우 일광 절약 시간제로 전환하면 잘못된 시간과 모호한 시간이라는 두 종류의 비정상적인 시간이 생성됩니다. 잘못된 시간은 표준 시간에서 일광 절약 시간으로 전환하여 생성된 존재하지 않는 시간입니다. 예를 들어 이 전환이 오전 2시에 특정 일에 발생하고 시간이 오전 3:00으로 변경되는 경우 오전 2시에서 오전 2시 59분 59분 사이의 각 시간 간격은 유효하지 않습니다. 모호한 시간은 하나의 표준 시간대에서 서로 다른 두 번에 대응할 수 있는 시간입니다. 일광 절약 시간제에서 표준 시간으로 전환하여 생성됩니다. 예를 들어 이 전환이 오전 2시에 특정 일에 발생하고 시간이 오전 1:00으로 변경되는 경우 오전 1시에서 오전 1시 59분 59분 사이의 각 시간 간격은 표준 시간 또는 일광 절약 시간으로 해석될 수 있습니다.
표준 시간대 용어
다음 표에서는 표준 시간대를 사용하고 표준 시간대 인식 애플리케이션을 개발할 때 일반적으로 사용되는 용어를 정의합니다.
기간 | 정의 |
---|---|
조정 규칙 | 표준 시간에서 일광 절약 시간 및 일광 절약 시간에서 표준 시간으로의 전환이 발생하는 시기를 정의하는 규칙입니다. 각 조정 규칙에는 규칙이 적용된 시점(예: 조정 규칙이 1986년 1월 1일부터 2006년 12월 31일까지), 델타(조정 규칙 적용의 결과로 표준 시간이 변경되는 시간) 및 조정 기간 동안 전환이 발생하는 특정 날짜 및 시간에 대한 정보를 정의하는 시작 및 종료 날짜가 있습니다. 전환은 고정 규칙 또는 부동 규칙을 따를 수 있습니다. |
모호한 시간 | 단일 표준 시간대에서 서로 다른 두 시간에 매핑할 수 있는 시간입니다. 표준 시간대의 일광 절약 시간에서 표준 시간으로 전환하는 동안과 같이 시계 시간이 시간을 거슬러 조정될 때 발생합니다. 예를 들어 이 전환이 오전 2시에 특정 일에 발생하고 시간이 오전 1:00으로 변경되는 경우 오전 1시에서 오전 1시 59분 59분 사이의 각 시간 간격은 표준 시간 또는 일광 절약 시간으로 해석될 수 있습니다. |
고정 규칙 | 일광 절약 시간제로 전환할 특정 날짜를 설정하는 조정 규칙입니다. 예를 들어 매년 10월 25일에 발생하는 일광 절약 시간에서 표준 시간으로의 전환은 고정 조정 규칙을 따릅니다. |
유동 규칙 | 일광 절약 시간제로 전환할 특정 월의 특정 요일을 설정하는 조정 규칙입니다. 예를 들어 3월 3일 일요일에 발생하는 표준 시간에서 일광 절약 시간으로의 전환은 부동 조정 규칙을 따릅니다. |
잘못된 형식 | 표준 시간에서 일광 절약 시간으로의 전환의 아티팩트인 존재하지 않는 시간입니다. 표준 시간대 표준시에서 일광 절약 시간으로 전환하는 동안과 같이 시계 시간이 정방향으로 조정될 때 발생합니다. 예를 들어 이 전환이 오전 2시에 특정 일에 발생하고 시간이 오전 3:00으로 변경되는 경우 오전 2시에서 오전 2시 59분 59분 사이의 각 시간 간격은 유효하지 않습니다. |
전환 시간 | 특정 시간대에서 서머타임에서 표준 시간으로 또는 그 반대로의 변경과 같은 특정 시간 변경에 대한 정보입니다. |
표준 시간대 및 TimeZoneInfo 클래스
.NET에서 TimeZoneInfo 객체는 시간대를 나타냅니다. TimeZoneInfo 클래스에는 GetAdjustmentRules 메서드가 있으며, 이 메서드는 TimeZoneInfo.AdjustmentRule 개체 배열을 반환합니다. 이 배열의 각 요소는 특정 기간 동안 일광 절약 시간제로의 전환에 대한 정보를 제공합니다. (일광 절약 시간을 지원하지 않는 표준 시간대의 경우 메서드는 빈 배열을 반환합니다.) 각 TimeZoneInfo.AdjustmentRule 개체에는 DaylightTransitionStartDaylightTransitionEnd 일광 절약 시간제와 전환의 특정 날짜 및 시간을 정의하는 속성이 있습니다. 이 속성은 IsFixedDateRule 해당 전환이 고정되어 있는지 또는 부동인지를 나타냅니다.
.NET은 Windows 운영 체제에서 제공하고 레지스트리에 저장된 표준 시간대 정보를 사용합니다. 지구의 표준 시간대 수로 인해 모든 기존 표준 시간대가 레지스트리에 표시되지 않습니다. 또한 레지스트리는 동적 구조이므로 미리 정의된 표준 시간대를 추가하거나 제거할 수 있습니다. 마지막으로 레지스트리에 기록 표준 시간대 데이터가 반드시 포함되어 있지는 않습니다. 예를 들어 Windows XP에서 레지스트리에는 단일 표준 시간대 조정 집합에 대한 데이터만 포함됩니다. Windows Vista는 동적 표준 시간대 데이터를 지원합니다. 즉, 단일 표준 시간대에는 특정 연도 간격에 적용되는 여러 조정 규칙이 있을 수 있습니다. 그러나 Windows Vista 레지스트리에 정의되고 일광 절약 시간을 지원하는 대부분의 표준 시간대에는 미리 정의된 조정 규칙이 하나 또는 두 개뿐입니다.
레지스트리에 대한 클래스의 TimeZoneInfo 의존성은 표준 시간대 인식 애플리케이션이 특정 표준 시간대가 레지스트리에 정의되어 있는지 확신할 수 없음을 의미합니다. 따라서 특정 표준 시간대(현지 표준 시간대 또는 UTC를 나타내는 표준 시간대 제외)를 인스턴스화하려는 시도는 예외 처리를 사용해야 합니다. 또한 필요한 TimeZoneInfo 개체를 레지스트리에서 인스턴스화할 수 없는 경우 애플리케이션을 계속하도록 하는 몇 가지 방법을 제공해야 합니다.
필요한 표준 시간대 TimeZoneInfo 의 부재를 처리하기 위해 클래스에는 레지스트리에서 찾을 수 없는 사용자 지정 표준 시간대를 만드는 데 사용할 수 있는 메서드가 포함 CreateCustomTimeZone 됩니다. 사용자 지정 표준 시간대를 만드는 방법에 대한 자세한 내용은 방법: 조정 규칙 없이 표준 시간대 만들기 및 방법: 조정 규칙을 사용하여 표준 시간대 만들기를 참조하세요. 또한 이 메서드를 사용하여 ToSerializedString 새로 만든 표준 시간대를 문자열로 변환하고 데이터 저장소(예: 데이터베이스, 텍스트 파일, 레지스트리 또는 애플리케이션 리소스)에 저장할 수 있습니다. 그런 다음 메서드를 FromSerializedString 사용하여 이 문자열을 개체로 다시 변환할 수 있습니다 TimeZoneInfo . 자세한 내용은 방법: 포함된 리소스에 표준 시간대 저장 및 방법: 포함된 리소스에서 표준 시간대 복원을 참조하세요.
각 표준 시간대는 UTC의 기본 오프셋과 기존 조정 규칙을 반영하는 UTC의 오프셋으로 특징지어지므로 한 표준 시간대의 시간을 다른 표준 시간대의 시간으로 쉽게 변환할 수 있습니다. 이 목적을 위해 객체에는 여러 변환 메서드가 포함되어 있으며, TimeZoneInfo을(를) 포함합니다.
ConvertTimeFromUtc는 UTC를 지정된 표준 시간대의 시간으로 변환합니다.
ConvertTimeToUtc- 지정된 표준 시간대의 시간을 UTC로 변환합니다.
ConvertTime- 지정된 표준 시간대의 시간을 지정된 다른 표준 시간대의 시간으로 변환합니다.
ConvertTimeBySystemTimeZoneId- 지정된 표준 시간대의 시간을 지정된 다른 표준 시간대의 TimeZoneInfo 시간으로 변환하는 매개 변수로 표준 시간대 식별자(개체 대신)를 사용합니다.
표준 시간대 간 시간 변환에 대한 자세한 내용은 표준 시간대 간 시간 변환을 참조하세요.
참고하십시오
.NET