2012-01-31 26 views
0

我使用DateTime.now構建時鐘並從服務器接收時區。 問題是DateTime仍然使用舊的時區。DateTime.now不響應時區更改

(我想它,而無需重啓開始使用新的時區設置,當我收到)

我該如何解決這個問題得到什麼?

+0

你是如何「從服務器收到一個時區」?您是否獲取TimeZoneInfo對象,或者本地計算機是否設置爲淨時區? – RQDQ 2012-01-31 16:17:11

+0

這是因爲DateTime表示系統上的當前時間達到一定的準確度。它不代表其他任何東西。這個網站有一個備受推崇的成員開展的一個項目,那就是試圖擴展DateTime,我相信它被稱爲Noda Time。 – 2012-01-31 16:26:44

回答

0

您是否嘗試過使用TimeZone類而不是DateTime?我不確定它是否會有所作爲,但值得一看。

DateTime baseUTC = new DateTime(2000, 1, 1); 
TimeZone localZone = TimeZone.CurrentTimeZone; 
DateTime localTime = localZone.ToLocalTime(baseUTC); 
1

您需要轉換當前本地時間到所需的時區。類似這樣的:

var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer);