如何在Quartz.net中获取下一个计划的触发器触发时间

时间:2011-07-08 14:31:31

标签: scheduling quartz.net crontrigger

这是我的第一个Quartz.net项目。我完成了我的基本功课,所有我的cron触发器正确启动,生活也很好。但是我很难在api doc中找到一个属性。我知道它在那里,只是找不到它。如何获得触发计划发射的确切时间?如果我在每天早上8点有一个触发器,那么在触发器类中这个上午8点存储在?

_quartzScheduler.ScheduleJob(job, trigger);
Program.Log.InfoFormat
 ("Job {0} will trigger next time at: {1}", job.FullName, trigger.WhatShouldIPutHere?);

到目前为止,我已经尝试了

GetNextFireTimeUtc(),StartTimeUTC以及上面显示的_quartzScheduler.ScheduleJob()的返回值。 http://quartznet.sourceforge.net/apidoc/topic645.html

上没有其他内容

触发器在其预定时间正确触发。只是化妆品。谢谢

2 个答案:

答案 0 :(得分:0)

你应该从getNextFireTime获得你所追求的东西(在调用ScheduleJob()之后该方法的值应该是准确的)。 ScheduleJob()方法也应该返回第一个开火时间的日期。

答案 1 :(得分:0)

正如jhouse所说,ScheduleJob会返回下一个时间表。 我正在使用Quartz.net 1.0.3。一切正常。

请记住,Quartz.net使用UTC日期/时间格式。

我使用过这个cron表达式:"0 0 8 1/1 * ? *"

DateTime ft = sched.ScheduleJob(job, trigger);

如果我打印ft.ToString("dd/MM/yyyy HH:mm"),我会得到09/07/2011 07.00 这是不对的,因为我已安排我的触发器每天早上8点开火(我在伦敦)。

如果我打印ft.ToLocalTime().ToString("dd/MM/yyyy HH:mm"),我会得到我期望的09/07/2011 08.00