我在處理C#中的DateTime
時遇到小問題。我設計了一個與哈里斯自動化系統交互的Windows應用程序。該應用程序接收EPG程序的所有觸發器。現在我有這個問題:如何處理移位DateTime
觸發收到
DateTime
:2012-01-31二十三點58分23秒觸發確切的時間:
00:03:53
(這個值可以是> NOW()或< NOW()
這裏是處理這個代碼:
DateTime segmentStartDateTime = DateTime.Now.ToUniversalTime().Date;
segmentStartDateTime = segmentStartDateTime + item.TIME;
如果我們測試這個代碼與上面的情況下,我得到segmentStartDateTime = 2012-01-31 00:03:53
,這是錯誤的值(正確的值應該是2012-02-01 00:03:53
)。
我相信你們之前遇到過這個問題,我會很感激任何幫助解決這個問題(以確定時間是在當天還是在後一天)。
幾個例子:
1)
輸入: - 當前時間:2012-03-08 13:27:00
- 接收到的時間跨度爲字符串:13:28:30
輸出 - 程序將開始在:2012-03-08 13:28:30
2)
輸入: - 當前時間:2012-03-08 23:58:19
- 接收到的時間跨度爲字符串:00:02:15
輸出 - 程序將開始在:2012-03-09 00:02:15
(後日)
3)
輸入: - 當前時間:2012-03-08 23:58:19
- 收到的時間跨度字符串:23:57:43
輸出 - 該計劃將開始:現在,它已經時間(2012-03-08 23:57:43
)
使用'DateTime.UtcNow',而不是'DateTime.Now.ToUniversalTime()'。從DST轉換到DST時速度更快並且沒有問題。 – CodesInChaos 2012-01-31 10:44:36
您是否希望在2月1日而不是1月31日得到時間? – 2012-01-31 10:45:48
問題是我可以在其真正的開始日期時間之前收到觸發器 – user852194 2012-01-31 10:46:25