2009-07-13 6 views
3

.NET 응용 프로그램의 TimeZone을 OS의 TimeZone 이외의 값으로 설정하는 방법이 있습니까?.NET 응용 프로그램의 TimeZone 설정/변경

예를 들어, Central Standard Time이 설정된 OS에서 내 응용 프로그램을 사용하고 있습니다. 응용 프로그램에서 모든 DateTime을 수동으로 변환하지 않고도 동부 표준시처럼 동작하도록 응용 프로그램에서 원합니다. 같은 방법 TimeZoneInfo.ConvertTimeBySystemTimeZoneId().

답변

5

아니요, 저는 이것을 수행 할 방법이 없다고 생각합니다. 시간대가 문화와 같이 스레드별로 설정되는 것과는 다릅니다. 예를 들어 DateTime.ToLocalTime은 일 것입니다. 항상 시스템 시간대를 사용하십시오.

그러나 어디서나 TimeZoneInfo.ConvertTimeBySystemTimeZoneId을 사용하지 않을 것입니다. 적절한 시간대를 나타내는 TimeZoneInfo 유형의 속성을 노출 시키거나 필요한 곳으로 변환 할 도우미 클래스를 설정합니다.

앱에 따라 데이터를 변환 할 올바른 지점을 선택하는 경우 (은 아니지만은 항상 UI 레이어와 떨어져 모든 위치에서 UTC로 유지하는 경우) 예상했던대로 많은 전환을 수행 할 필요가 없습니다.

+0

우리는 TimeZoneInfo.ConvertTimeBySystemTimeZoneId를 우리의 DateTime 헬퍼 클래스들 중 하나로 추상화 시켰습니다. 그래서 우리 코드에서 "Eastern Standard Time"상수를 노출 할 필요가 없었습니다 –

관련 문제