比较Cron Expression和当前时间

我正在设计一个调度程序,并使用石英库。我想检查cron表达式时间是否是将来的时间,否则将根本不会执行触发器。有什么方法可以将cron表达式时间与Java中的当前时间进行比较。

回答:

需要考虑的是,标准的有效cron表达式将始终引用将来的有效时间。需要说明的是,Quartz

cron表达式可能包含一个可选的Year字段,该字段可以是过去的以及将来的。

要检查表达式的有效性,您可以构建一个CronExpression实例,然后要求其提供下一个有效的将来时间。a

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();

}

}

这是Quartz API 的链接CronExpression

以上是 比较Cron Expression和当前时间 的全部内容, 来源链接: utcz.com/qa/419596.html

回到顶部