Java 将Cron表达式与当前时间进行比较

Java 将Cron表达式与当前时间进行比较,java,quartz-scheduler,cronexpression,Java,Quartz Scheduler,Cronexpression,我正在设计一个调度器并使用quartz库。我想检查cron表达式时间是否指的是将来的时间,否则根本不会执行触发器。在java中有没有比较CRON表达式时间和当前时间的方法。 < P> >考虑一下,一个标准有效的CRON表达式将永远指将来的有效时间。需要注意的是,Quartz cron表达式可能包含一个可选的年份字段,该字段可以是过去的,也可以是将来的 要检查表达式的有效性,您可以构建一个CronExpression实例,然后询问它下一个有效的未来时间;null表示表达式没有有效的未来时间。下面是

我正在设计一个调度器并使用quartz库。我想检查cron表达式时间是否指的是将来的时间,否则根本不会执行触发器。在java中有没有比较CRON表达式时间和当前时间的方法。

< P> >考虑一下,一个标准有效的CRON表达式将永远指将来的有效时间。需要注意的是,Quartz cron表达式可能包含一个可选的年份字段,该字段可以是过去的,也可以是将来的

要检查表达式的有效性,您可以构建一个
CronExpression
实例,然后询问它下一个有效的未来时间;
null
表示表达式没有有效的未来时间。下面是一个快速单元测试示例:

@Test
public void expressionTest() {
    Date date;
    CronExpression exp;
    // Run every 10 minutes and 30 seconds in the year 2002
    String a = "30 */10 * * * ? 2002";      
    // Run every 10 minutes and 30 seconds of any year
    String b = "30 */10 * * * ? *"; 
    try {
        exp = new CronExpression(a);
        date = exp.getNextValidTimeAfter(new Date());
        System.out.println(date);       // null
        exp = new CronExpression(b);
        date = exp.getNextValidTimeAfter(new Date());
        System.out.println(date);       // Tue Nov 04 19:20:30 PST 2014
    } catch (ParseException e) {
        e.printStackTrace();
    }
}
下面是石英
CronExpression
API的一个示例