0

Windows サーバーにはレジストリ キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation があり、フィールド ActiveTimeBias は、実行中のマシンの GMT からのオフセットを分単位で返します。

生成した HTML ページでユーザーの現地時間を表示する必要がある Web アプリケーションがあります。これを行うには、ユーザーにタイムゾーンのプリファレンスを設定してから上記の値をフェッチして、サーバー時間とクライアント時間を比較し、正しい計算を行うことができるようにします。

私たちが構築したサーバーでは、これはうまく機能します。私たちは、構成して使用する Windows サーバー ami を提供しているティア 1 クラウド プロバイダーにアプリケーションをデプロイしています。ローカル サーバーでクロック コントロール パネルを使用すると、TimeZoneInformation のレジストリ エントリが正しいことがわかりました。この仮想マシンに対して同じことを行うと、エントリは ActiveTimeBias を除いて正しくなります。

Microsoft は、通常の方法で個々の値をいじらないように警告しています。

コミュニティへの質問 - 他の誰かがこの問題に遭遇しましたか? もしそうなら、どのように修正しましたか?

4

1 に答える 1

0

通常、これらのレジストリ キーに対して直接プログラムすることはありません。たとえば、.Net にはTimeZoneInfoクラスがあります。同じデータを使用しますが、開発者にとってより使いやすい方法です。

特定の質問に関して、ActiveTimeBiasキーは、サーバーが設定されているタイムゾーンの UTC からの現在のオフセットを保持します。サーバーが夏時間規則に従うタイムゾーンにある場合、これは年に 2 回変更されます。タイム ゾーンを手動で更新してレジストリを更新すると、タイム ゾーンが変更されます。

私が提供できる最善のアドバイスは、サーバーのタイムゾーンは誰にとっても重要ではない可能性が高いため、UTC に設定する必要があるということです。

関連項目:夏時間とタイム ゾーンのベスト プラクティス

于 2013-05-10T20:40:12.420 に答える