我使用DateTime.now構建時鐘並從服務器接收時區。 問題是DateTime仍然使用舊的時區。DateTime.now不響應時區更改
(我想它,而無需重啓開始使用新的時區設置,當我收到)
我該如何解決這個問題得到什麼?
我使用DateTime.now構建時鐘並從服務器接收時區。 問題是DateTime仍然使用舊的時區。DateTime.now不響應時區更改
(我想它,而無需重啓開始使用新的時區設置,當我收到)
我該如何解決這個問題得到什麼?
您是否嘗試過使用TimeZone類而不是DateTime?我不確定它是否會有所作爲,但值得一看。
DateTime baseUTC = new DateTime(2000, 1, 1);
TimeZone localZone = TimeZone.CurrentTimeZone;
DateTime localTime = localZone.ToLocalTime(baseUTC);
您需要轉換當前本地時間到所需的時區。類似這樣的:
var timeInServerTimezone = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfoReceivedFromServer);
您必須在更改時間後清除時間現金。 使用以下命令:
TimeZoneInfo.ClearCachedData()
你是如何「從服務器收到一個時區」?您是否獲取TimeZoneInfo對象,或者本地計算機是否設置爲淨時區? – RQDQ 2012-01-31 16:17:11
這是因爲DateTime表示系統上的當前時間達到一定的準確度。它不代表其他任何東西。這個網站有一個備受推崇的成員開展的一個項目,那就是試圖擴展DateTime,我相信它被稱爲Noda Time。 – 2012-01-31 16:26:44