2010-05-30 2 views
7

내가 조사한 바에 따르면 스레드의 시간대를 변경할 수 없습니다. 그래서 내 질문은 수없는 이유는 무엇입니까?CurrentCulture를 설정할 때 시간대가 변경되지 않는 이유는 무엇입니까?

응용 프로그램의 문화권을 특정 국가로 전환하면 전환 가능성이있는 것으로 예상되는 동작 IMO 인 것 같습니다.

내가 아마 1 매핑하지 않아야하는 이유 볼 수 있습니다 개정 후 편집

: 기본적으로 1. 그러나 여전히 스레드 당 시간대를 변경할 수있는 좋은 기능이라고 생각합니다.

+0

+1 "나는 여전히 스레드 당 시간대를 변경할 수있는 좋은 기능이라고 느낍니다." –

답변

10

그들은 1 : 1이 아니므로 실제로 연결되어 있지 않습니다. 현재 문화권을 en-US으로 설정하면 어떤 시간대입니까? :)

여러 국가에서 시간대가 1 개 이상이므로 문화권 (which is not country specific either for that matter)을 설정하면 실제로 시간대와 관련이 없습니다.

+0

+1 좋은 지적입니다! 그렇게 생각하지 마십시오. 여러 시간대를 가지고 있지 않은 사람들을 위해 이것을하는 것이 좋은 생각이었을까요? – James

+1

@James - Nope :) 문제와 헬프 데스크 요청을 요구할 때 * 할 수있는 경우 * 일부 사례 *에서 수행하는 것이 아니라 API에서 항상 * 일관된 동작을 수행해야합니다. 예측 가능한> 가능한 한 많이 수행 –

+0

CurrentCulture가 Timezone id를 사용하는 과부하를 가지고 있다면 나는 좋았을 것입니다 :) – James

4

문화는 한 가지, 시간대는 다른 것입니다. 미국 뉴욕에서 일하는 남아공 시민이라고 가정 해보십시오. 당연히 당신은 귀하의 시간대가 동부 표준시 (GMT -5)가되기를 원합니다, 왜냐하면 그 곳에서 입니다; 그러나 원하는대로 문화를 "af-ZA"로 설정하면 자동으로 시간대가 GMT + 2로 변경됩니다.

+0

예를 수정 한 후에 나는 그들이 기본적으로 매핑되지 않아야한다는 것을 알았습니다. 그러나 스레드의 시간대를 설정할 수도 있다면 좋을 것입니다. – James

+0

@James : 정말 좋을 것 같습니다. 그러나이 문제를 해결하는 다른 방법이 있습니다. 예를 들어 응용 프로그램이 UTC (런타임 중에 수정할 수 있음)에서 자체 오프셋을 유지하면서 시간이 필요한 모든 위치에서이 오프셋을 사용할 수 있습니까? –

+0

지금은 솔루션을 가지고 있으며 즉시 전환을 수행하고 있습니다. 스레드 당 시간대를 변경하고 변환을 완전히 제거 할 수 있다면 더 쉬울 것이라고 생각했습니다. – James

관련 문제