开发者

Is there any java class to get Date from cron expression

开发者 https://www.devze.com 2023-01-29 14:02 出处:网络
I need to find out the first occurrence of Date and time represented by given cro开发者_运维问答n expression.

I need to find out the first occurrence of Date and time represented by given cro开发者_运维问答n expression. Is there any java class, utility code which can help in getting data object from given cron expression ?


You can also leverage on spring's http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html for this

CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date nextRunDate= generator.next(new Date());


You can check org.quartz.CronExpression It has a method named getNextValidTimeAfter which you can use.


If you're using Spring you could use:

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


Here's an alternative similar to Quartz's CronExpression but without having to add a fully fledged scheduler to your project: cron-utils

You can get the date you need with the following:

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

According to the official description, cron-utils is:

A Java library to parse, validate, migrate crons as well as get human readable descriptions for them. The project follows the Semantic Versioning Convention and uses Apache 2.0 license.


It looks like you could use either of these:

  • j-cron-expression
  • Quartz CronTrigger class
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号