我有一个臭名昭着的夏令时问题。夏令时和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/),搜索*验证您的输入!*。 –