C#夏令时DateTime开关

时间:2011-02-09 16:19:10

标签: c#

每当日光转换发生时,我都会触发事件。

当使用

进行弹簧/秋季开关时,我会得到
TimeZone.CurrentTimeZone.GetDaylightChanges(year)

这会给我2个日期时间: 1.启动Datetime,即Spring cutover 3.结束日期时间,即秋季转换。

春季前锋运作良好。

但对于秋季,我得到的结束时间是美国中部标准时间早上2点。因此,当我从CST减去1.59.59 AM时减去一秒钟。因此事件在一小时后被解雇。我需要设置1.59.59 CDT的触发器。如何构建此Datetime?

1 个答案:

答案 0 :(得分: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);