2017-12-15 18 views
3

은 내가 던져왜 Windows 10에 일부 시간대 정보가 누락 되었습니까? 내 로컬 컴퓨터에서

foreach (var timeZone in TZConvert.KnownIanaTimeZoneNames) 
{ 
    var tzi = TZConvert.GetTimeZoneInfo(timeZone.ToString()); 
    TimeSpan offset = tzi.GetUtcOffset(DateTime.Now); 
    ....... 
} 

, 다음과 같이 converter를 사용하여 IANA 시간대의 오프셋 값을 액세스하기 위해 시도 할 때

System.TimeZoneNotFoundException: 'The time zone ID 'Sudan Standard Time' was not found on the local computer.' 

말하는 오류를 줄 때로는 TZConvert.GetTimeZoneInfo(timeZone.ToString())을 시도하고있다 동일한 명령을 사용하는 전원 쉘에서도 동일합니다.

PS C : \ Users \ Sajeet 하란> [System.TimeZoneInfo] :: FindSystemTimeZoneById ("알류 표준 시간")를 "1" 인자 (들) "FindSystemTimeZoneById"를 호출 예외 "시간대 ID '알류 표준시'온 발견되지 않았다 로컬 컴퓨터. " 줄에 : 1 문자 : 1 + [System.TimeZoneInfo] :: FindSystemTimeZoneById ("알류 샨 표준시 ... + ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified : (: [], MethodInvocationException + FullyQualifiedErrorId : TimeZoneNotFoundException

왜 누락 일부 시간대 정보 내가 그것을 고칠 수있는 방법

+0

Powershell에는'([System.TimeZoneInfo] :: GetSystemTimeZones()). StandardName' 출력뿐만 아니라'(Get-TimeZone -ListAvailable) .Id'에도'수단 '이 없습니다. '에서 하나를 선택 (가져 오기-시간대 -ListAvailable을 | 어디-오브젝트 {$ _ BaseUtcOffset -eq '02 : 00 :.. 00 '- 그리고 -not $ _ SupportsDaylightSavingTime})'; ['TimeZoneInfo.CreateCustomTimeZone' 메서드] (https : // msdn)를 적용 할 수 있습니다.microsoft.com/en-us/library/system.timezoneinfo%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) 변형. – JosefZ

답변

1

특정 시간대, "Sudan Standard Time"했다 단지released by Microsoft on December 12, 2017 그것을?. 코드가 실행되고있는 컴퓨터가 아직 h 이 업데이트. 의 "이 업데이트를 얻는 방법"절을 참조하십시오. (기본적으로 Windows Update를 실행하십시오.)

는 지금까지 "Aleutian Standard Time"로, 그 released in June 2016했다. 따라서 컴퓨터에 해당 버전이 없으면 입니다. 업데이트 번호는입니다. 세계의 정부들이 상쇄 표준 및 DST 정책을 변경할 수 있기 때문에 일반적으로

는 시간대는 움직이는 대상입니다. 정확한 현지 시간을 유지하려면 최신 정보를 최신 상태로 유지해야합니다. 사용중인

내 TimeZoneConverter 라이브러리는 컴퓨터가 현재이라는 가정을합니다. Microsoft 및 IANA에서 표준 시간대 변경 사항을 릴리스 할 때마다 업데이트를 적용하지만 특정 컴퓨터에 표준 시간대가 설치되어 있는지 여부를 확인하지 않습니다.

컴퓨터의 모든 표준 시간대를 나열하려면 TimeZoneInfo.GetSystemTimeZones() 기본 제공 방법을 사용하고 각각 .Id 속성을 사용하는 것이 좋습니다. .StandardName, .DaylightName.DisplayName 속성은 OS에 설치된 언어에 대한 지역화 이기 때문에

또한, 대부분의 경우에, 당신은 .StandardName를 사용하지 않습니다. 때로는 .Id.StandardName과 일치하지만 영어로도 보장되지는 않습니다.