4

私のアプリケーションは、過去と現在の日付を現地時間から UTC に変換します。

過去の日付を正しく処理しながら、将来の DST の更新を Windows に適用できるようにする必要があります。

アプリケーションは C++ で作成され、Server 2003 で実行されています。

私が調査したオプション:

そう...

  • ...これを行うために未加工のレジストリソリューションを使用している人はいますか?

  • ...他の提案はありますか?

(編集:dst_calc_engineDSTアップデートをサポートしていないことがわかりました)

4

2 に答える 2

2

のレジストリの情報に基づいて、GetTimeZoneInformationForYear再実装することをお勧めします。GetDynamicTimeZoneInformationHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

そうすれば、コードは Windows の更新に追従し、ダーティ コードを上位レベルのプラットフォームでの実際の実装に差し替えることができます。

外部データベースを使用したくないので、他のオプションは実行可能ではないと思います。

于 2009-08-14T09:37:51.977 に答える
0

2007 年以降の日付には gmtime() と localtime() を使用でき (Windows DST の更新を利用できます)、Boost または言及した他のソリューションのいずれかを使用して、2006 以前の正しい DST ルールを使用できます。

于 2009-08-12T05:29:06.957 に答える