전세계 고객이 내 서버 응용 프로그램에 특정 '요청'을 보낼 수 있습니다. 이 모든 고객은 여러 다른 시간대에 있습니다.한 시간대에서 다른 시간대로 변환 (네이티브 C++)
모든 요청에 대해 요청을 내부 C++ 클래스 인스턴스에 매핑해야합니다. 모든 클래스 인스턴스에는 '위치'에 대한 정보가 있으며 이는 시간대로도 표시됩니다.
모든 고객은 다른 시간대에 속하는 인스턴스와 관련된 요청을 보낼 수 있습니다. 고객이 모든 것을 '대상'인스턴스의 시간대로 변환하지 못하도록 모든 것을 하나의 시간대에서 다른 시간대로 변환해야합니다. 그러나 C++ (비 관리, 네이티브) 함수 만 로컬 시간과 GTM 사이의 시간을 변환하지만 현재 시간대가 아닌 시간대는 변환하지 않습니다.
고객에게 UTC 또는 GTM의 모든 날짜를 보내달라고 요청할 수는 있지만 시간대가 될 수있는 '인스턴스'의 시간대로 변환해야하므로 문제가 해결되지 않습니다. 세계.
또한이 작업을 수행하는 Windows 기능을 찾지 못하는 것 같습니다. 내가 찾은 것은 관리되는 .Net 클래스이다. 그러나이 클래스는 내 애플리케이션을 엄격하게 관리하지 않기를 원한다.
사용할 수 있고 (설명서에서 간과 한) Windows (XP, Vista, 7, 2003, 2008) 기능이 있습니까? 아니면 표준 시간대와 표준 시간대간에 변환 할 수있는 다른 무료 알고리즘이 있습니까? 다른?
문제를 유발하는 것은 GMT 차이가 아니라 시간대에 따라 달라지는 실제 DST 전환 순간입니다. 예 :
- 서유럽은 4 월 1 일 전 마지막 일요일이 아닌 DST에서 DST로 변경됩니다.
- 미국은 3 월 1 일 이후 두 번째 일요일에 비 DST에서 DST로 이동합니다.
- 중국에는 DST가 없습니다.
- 호주는 10 월 1 일 이후 첫 번째 일요일에 비 DST에서 DST로 이동합니다.
이 DST 전환 정보는 Windows 레지스트리의 어딘가에서 사용할 수 있습니다. 문제는이 정보를 악용하는 데 사용할 수있는 Windows 기능입니다.
DST 전환은 지역의 정치적 결정입니다.모든 비용을 들이지 않고 이것을 피하고 클라이언트 컴퓨터가 UTC 변환을 로컬에서 로컬로 변환하도록합니다. –
@Hans, 문제는 서버가 전 세계에 분산되어있는 창고를 관리하고 있으며 각각 개점 시간/폐쇄 시간이 있다는 것입니다. 고객에게 현지 시간을 UTC로 변환하도록 요청하는 것은 쉽지만 모든 창고 개폐 시간을 UTC로 변환해야합니다. 이렇게하려면 표준 시간대 정보가 필요합니다. – Patrick
글쎄, 고객에게 물어 보지 마라. 그것을 자동으로하십시오. –