Uni*_*orn 10 java cron date cronexpression
我需要找出由给定的cron表达式表示的第一次出现的日期和时间.是否有任何java类,实用程序代码可以帮助从给定的cron表达式获取数据对象?
lor*_*tol 14
您还可以利用spring的http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html来实现此目的
CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date nextRunDate= generator.next(new Date());
Run Code Online (Sandbox Code Playgroud)
小智 8
如果你使用的是Spring,你可以使用:
CronTrigger trigger = new CronTrigger(cron);
TriggerContext context = new TriggerContext() {
public Date lastScheduledExecutionTime() {
return null;
}
public Date lastActualExecutionTime() {
return null;
}
public Date lastCompletionTime() {
return null;
}
};
return trigger.nextExecutionTime(context);
Run Code Online (Sandbox Code Playgroud)
这是一个类似于Quartz的CronExpression的替代方案,但无需在项目中添加完全成熟的调度程序: cron-utils
您可以通过以下方式获得所需的日期:
//Get date for next execution
DateTime now = DateTime.now();
CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(QUARTZ);
CronParser parser = new CronParser(cronDefinition);
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * * *"));
DateTime nextExecution = executionTime.nextExecution(now));
Run Code Online (Sandbox Code Playgroud)
根据官方描述,cron-utils是:
一个Java库,用于解析,验证,迁移crons以及获取人类可读的描述.该项目遵循语义版本控制约定并使用Apache 2.0许可证.