我有一個臭名昭着的夏令時問題。夏令時和DateTime.AddHour()
我有一個數據點列表,一年一個小時。要檢查所有的數據點都存在,我創建了一個時間迭代器是這樣的:
DateTime timeIterator = new DateTime(year, 1, 1, 0, 0, 0);
迭代它
timeIterator = timeIterator.AddHours(1);
,並檢查每個迭代,如果在時間點出現在列表中。
夏令時出現問題。我以2014年爲例,時鐘在02年3月30日移動到0300.所以,在0159到達0300之後。但是DateTime.AddHours()完全忽略了夏令時。如果timeIterator在{30.03.2014 01:00:00},我打電話AddHours(1),我得到{30.03.2014 02:00:00}這顯然不存在。
如果我現在根據這個數據點測試列表,它是(自然地)不在列表中,並且我拋出了一個錯誤的「丟失的數據點錯誤」。
如果我的DateTime是一個有效的時間點,我該如何檢查?
由於提前,
弗蘭克
嗯,這實際上取決於你在談論哪一個國家。 –
您有關[此](http://stackoverflow.com/questions/5811267/net-accounting-for-daylight-savings)有關TimezoneInfo的答案。 –
另請閱讀[這裏](http://codeofmatt.com/2015/03/06/common-daylight-saving-time-mistakes-for-net-developers/),搜索*驗證您的輸入!*。 –