2013-02-01 73 views
0

當前我正在使用Quartz.Net Scheduler來安排不同的工作。在用戶界面中,用戶可以配置頻率,即每週和每週的星期和時間,以觸發作業。一旦用戶可以配置這些屬性,我正在顯示下一個觸發時間。Quartz.Net GetNextValidTimeAfter()拋出DST異常

示例:每週星期日2 AM CronString:0 0 2? * SUN * 當前日期:2013年3月8日星期五 區:EST UTC-5.30 下觸發時間:2013年3月10日星期日上午2:00

這一個是工作的罰款。但是如果DST將於2月10日開始,那麼當天就不會有凌晨2點。因此CronExpression會拋出以下錯誤:

CronExpression exp = new CronExpression(cronStr); 
var dt = exp.GetNextValidTimeAfter(DateTime.Now.ToUniversalTime()).Value.ToLocalTime(); 
return String.Format("{0:dddd, MMMM d, yyyy}", dt); 

異常:引發ArgumentException。 消息:「提供的DateTime代表無效的時間。」

至於有沒有這樣的日期時間存在於日曆,我希望那一天跳過並顯示下一個有效的日期,即2013年3月17日星期日上午2:00

幫助我,我怎麼能解決這個問題,因爲它是在Quartz代碼中由.NET CLR內部拋出。

+0

還看到:http://stackoverflow.com/questions/5223631/ways-to-deal-with-daylight-savings-time-with-quartz-cron-trigger/23819952#23819952 – ron

回答