我相信你看到的是:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.SupportsDaylightSavingTime == true
每the MSDN documentation在SupportsDaylightSavingTime
屬性:
獲取指示時區是否有夏令時規則的值。
所以,它不會告訴你,如果時區目前使用夏令時,或沒有,它會告訴你,如果它曾經有,至少時間簡史那就是在中Windows時區數據。
如果你想知道,如果DST是當前有效,然後執行:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.IsDaylightSavingTime(DateTime.UtcNow) // false
如果你想知道這是否是在某一年的任何時間的支持,您可以檢查調整規則數據從GetAdjustmentRules
方法返回。
的Windows存儲在註冊表中的時區數據:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\Time Zones\W. Australia Standard Time\Dynamic DST
所以我們可以看到,有從2005年的數據轉發在註冊表中。如果仔細觀察,還可以看到2006年和2009年之間的一些變化。如果您有興趣,This article可幫助您解讀數據。
事實上,如果我們檢查timeanddate.com(一非常的時區信息很好的資源),我們可以看到,西澳大利亞的確有夏令時2006年至2009年:
最後,我會補充一點,Windows時區服務團隊已經非常擅長處理世界時區數據更改。您可以監視this blog以獲取更新。尤其是,他們通過the June 2016 update大大擴大了覆蓋範圍並提高了歷史準確性。
對於澳大利亞,2016年6月的更新增加了兩個新的時區;一個用於豪勳爵羣島(UTC + 10:30 STD,UTC + 11:00 DST),另一個用於在Eucla附近使用的非官方中西部時間(UTC + 08:45),但對於任何標準都不需要更正大陸時區。
SiupportsDaylightSavingTime告訴您是否有時區的DST規則。是的,有必要涵蓋2010年之前的日期。它不*表示DST目前正在生效。 –
感謝您的回覆@Hans。對我來說,現在如何運作更爲清晰。 – llc381