2011-02-09 54 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