Question

Mon application convertit les dates passées et présentes de l'heure locale à l'UTC.

Je dois assurer que je vais honorer toutes les futures mises à jour l'heure d'été à Windows lors de la manipulation encore correctement les dates passées.

L'application est écrit en C ++ et est en cours d'exécution sur le serveur 2003.

Options J'ai fait des recherches:

...

  • ... Quelqu'un d'autre en utilisant la solution de registre brut pour le faire?

  • ... d'autres suggestions?

(edit: dst_calc_engine ne supporte pas l'heure d'été mises à jour )

Était-ce utile?

La solution

Je pense que je préfère réimplémenter GetTimeZoneInformationForYear et peut-être GetDynamicTimeZoneInformation sur la base des informations contenues dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.

De cette façon, votre code Windows et suivez les mises à jour, vous pouvez échanger le code sale pour la mise en œuvre effective sur les plateformes haut niveau.

Puisque vous ne voulez pas que je pense utiliser une base de données externe, pas d'autres options sont viables.

Autres conseils

Vous pouvez utiliser gmtime () et localtime () pour les dates en 2007 et plus tard (et profiter des mises à jour de Windows DST), et l'utilisation Boost ou l'une des autres solutions que vous avez mentionné d'utiliser les bonnes règles DST 2006 et années antérieures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top