3
我正在從WPF應用程序中更改系統時區。要做到這一點,我使用了我在本網站上找到的非託管代碼:changing time zones。它確實改變了我的時區。然而,當我點擊窗口時鐘,我看到一條消息:「您當前的時區無法識別,請使用下面的鏈接選擇一個有效的時區。」我可以想象有什麼地方有些微差別。我已經分析過一個時區 - 它是如何在程序化變更之前和之後呈現的。如何以編程方式更改系統時區
BEFORE:
BaseUtcOffset: 4:00:00:00
Daylight Name: "Arabian Daylight Time"
Display Name: "(UTC +4:00) Abu Dhabi, Muscat"
Id: "Arabian Daylight Time"
Standard Name: "Arabian Daylight Time"
SupportsDaylightSavingTime: false
AFTER:
BaseUtcOffset: -4:00:00:00
Daylight Name: ""
Display Name: "Arabian Daylight Time"
Id: "Arabian Daylight Time"
Standard Name: "Arabian Daylight Time"
SupportsDaylightSavingTime: false
我發現沒有辦法設置 「顯示名稱」 使用TIME_ZONE_INFORMATION。因此,當用戶使用Windows設置手動更改時,它被稱爲「(UTC + 4:00)阿布扎比,馬斯喀特」,現在它被稱爲「阿拉伯日光時間」。也許這些差異是我看到「您當前的時區...」消息的原因之一。我讀過其他地方,重新啓動有幫助,並且此消息消失 - 不幸的是重新啓動後沒有任何變化。
你是如何從'+4:00:00:00'到'-4:00:00:00'(美國東部夏令時間)? – Gabe
我注意到了,當然。它可能是創建基於TimeZoneInfo的TimeZoneInformation的方法中的一個錯誤。但是,當涉及到問題時,它不會改變任何事情。爲什麼?因爲我使用了一次GetTimeZoneInformation方法 - 我寫下了結構中的所有值,並且下次我傳遞了完全相同的值。我仍然有「你目前的時區...」的消息。 – user3046525