如何查找给定的时间戳是否在cron表达式中?

时间:2013-09-15 11:15:04

标签: java cron quartz-scheduler scheduling

我正在使用quartz scheduler使用cron表达式在Java中安排一些作业,并且需要找到给定时间戳是否在指定的cron表达式中。也就是说,这个cron的预定作业是否会在给定的时间戳运行?

我不仅限于使用石英库来解决这个问题,所以欢迎任何解决方案。

2 个答案:

答案 0 :(得分:1)

日期getFireTimeAfter(日期后时间)

在触发界面中。

当t是您要检查的时间时,您可以检查下一个火力时间t-1是什么。如果结果等于t你知道答案。

答案 1 :(得分:0)

Calendar界面只需要检查日历中是否“包含”时间戳所需的方法,因此CronTrigger将使用给定的时间戳触发:

boolean includedisTimeIncluded(long timeStamp)
  • 您可以使用“继承的触发器”方法从CronTrigger中获取日历名称

    String calendarName = myTrigger.getCalendarName();
    
  • 然后从Scheduler实例中检索 Calendar 并检查您的时间戳:

    Calendar cal = sched.getCalendar(calendarName);
    boolean willFire = cal.includedisTimeIncluded(timeStampToCheck);