2011-02-09 55 views
3

我有事件在日光开关发生时触发。C#夏时制日期时间开关

我得到当春/秋季交换机会使用

TimeZone.CurrentTimeZone.GetDaylightChanges(year) 

这将返回我的2个日期时间的情况发生: 1.启动日期时间是春季割接 3.结束日期时间是秋季割接。

春季前进工作正常。

但是对于秋天,我得到的结束时间是上午2点。所以当我从我得到1.59.59 CST减去一秒钟。所以这个事件一小时后就被解雇了。我需要为1.59.59 CDT设置触发器。我如何构建这个日期时间?

回答

1

您希望在时间更改开始之前将其设置为1秒。转换为UTC,然后减去增量和另一秒。

DateTime fall; //set to 2:00 AM CST 
DaylightTime time; //Filled from your GetDaylightChanges() call. 
DateTime fallAdjusted = fall.ToUniversalTime().Subtract(time.Delta).AddSeconds(-1); 
+0

同意,使用UTC。你试图做的是使用一个实际上并不存在的时间。 – 2011-02-09 16:44:38