我正在使用quartz scheduler使用cron表达式在Java中安排一些作业,并且需要找到给定时间戳是否在指定的cron表达式中。也就是说,这个cron的预定作业是否会在给定的时间戳运行?
我不仅限于使用石英库来解决这个问题,所以欢迎任何解决方案。
答案 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);