تحويل الأوقات المحلية القديمة والجديدة إلى UTC تحت نظام التشغيل Windows XP / Server 2003

StackOverflow https://stackoverflow.com/questions/1261566

سؤال

يحول طلبي التواريخ الماضية والحاضر من وقت محلي إلى UTC.

أحتاج إلى التأكد من أنني سأكرم أي تحديثات DST المستقبلية إلى Windows أثناء التعامل بشكل صحيح في التعامل بشكل صحيح.

يتم كتابة التطبيق في C ++ ويتم تشغيله على Server 2003.

الخيارات التي بحثتها:

وبالتالي...

  • ... هل أي شخص آخر يستخدم حل التسجيل الخام للقيام بذلك؟

  • ... أي اقتراحات أخرى؟

(تحرير: اكتشف dst_calc_engine لا يدعم تحديثات DST)

هل كانت مفيدة؟

المحلول

أعتقد أنني أفضل إعادة التنفيذ GetTimeZoneInformationForYear ومحتمل GetDynamicTimeZoneInformation بناء على المعلومات في التسجيل في HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.

بهذه الطريقة، سيتبع الرمز الخاص بك تحديثات Windows ويمكنك تبديل التعليمات البرمجية القذرة للتنفيذ الفعلي على منصات أعلى مستوى.

نظرا لأنك لا ترغب في استخدام قاعدة بيانات خارجية، فلا أعتقد أنه لا توجد خيارات أخرى قابلة للحياة.

نصائح أخرى

يمكنك استخدام GMT () ومحلية () للتواريخ في عام 2007 والإصدارات الأحدث (والاستفادة من تحديثات Windows DST)، واستخدم دفعة أو واحدة من الحلول الأخرى التي ذكرتها لاستخدام قواعد DST الصحيحة لعام 2006 والإصدارات السابقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top