2012-08-27 80 views
0

Windows服務器具有註冊表項HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \控制\ TimeZoneInformation其中場ActiveTimeBias將返回在幾分鐘內抵消GMT爲您的機器上運行。Windows註冊表設置未得到更新

我們有一個web應用程序,需要在我們生成的html頁面上向用戶顯示他們的本地時間。我們通過讓他們爲他們的時區設置首選項,然後獲取上述值,以便比較服務器時間和客戶端時間並進行正確的計算來實現這一點。

在我們構建的這臺服務器上工作很好。我們正在將我們的應用程序部署到提供我們配置和使用的Windows服務器的第1層雲提供商。我們發現,當你在本地服務器上使用時鐘控制面板時,註冊表中的TimeZoneInformation是正確的。當我們爲這個虛擬機做同樣的事情時,除了ActiveTimeBias之外,這些entrys是正確的。

微軟警告說不要以他們慣用的方式篡改個人價值。

問題爲社區 - 有其他人遇到過這個問題,如果是的話,你是如何解決它?

回答

0

通常不會直接針對這些註冊表項進行編程。例如,在.Net中,我們有TimeZoneInfo類。它使用相同的數據,但採用更加開發友好的方式。

關於你提到的具體的問題,ActiveTimeBias鍵保持當前UTC的偏移量爲您的服務器設置的時間區。如果您的服務器位於遵循夏令時規則的時區內,那麼這將每年更換兩次。如果您手動更新時區並刷新註冊表,則會看到它發生更改。

我能提供的最好建議是,既然服務器的時區可能是不重要的任何人,你應該把它設置爲UTC。

另請參閱:Daylight saving time and time zone best practices