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

Java 如何确定给定的时间戳是否在cron表达式中?,java,cron,quartz-scheduler,scheduling,Java,Cron,Quartz Scheduler,Scheduling,我正在使用来调度Java中使用cron表达式的一些作业,并且遇到了需要查找给定的时间戳是否在指定的cron表达式中的问题。也就是说,具有此cron的计划作业是否会在给定的时间戳上运行 我并不局限于使用quartz库来解决这个问题,所以欢迎任何解决方案。有 日期getFireTimeAfter(日期晚于时间) 在触发器接口中 当t是您要检查的时间时,您可以检查下一次点火时间t-1是什么。如果结果等于t,则您知道答案。该接口具有您需要检查日历中是否“包含”了时间戳的方法,因此CronTrigger将

我正在使用来调度Java中使用cron表达式的一些作业,并且遇到了需要查找给定的时间戳是否在指定的cron表达式中的问题。也就是说,具有此cron的计划作业是否会在给定的时间戳上运行

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

日期getFireTimeAfter(日期晚于时间)

在触发器接口中

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

该接口具有您需要检查日历中是否“包含”了时间戳的方法,因此CronTrigger将使用给定的时间戳触发:

boolean includedisTimeIncluded(long timeStamp)
Calendar cal = sched.getCalendar(calendarName);
boolean willFire = cal.includedisTimeIncluded(timeStampToCheck);
  • 您可以使用继承的触发器方法从CronTrigger获取日历名称:

    String calendarName = myTrigger.getCalendarName();
    
  • 然后从调度程序实例检索日历并检查时间戳:

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

有人知道答案吗?最近我也遇到了类似的情况。