Je dois trouver la première occurrence de Date et heure représentée par l'expression cron donnée. Existe-t-il un code utilitaire de classe java qui peut aider à obtenir l'objet de données d'une expression cron donnée?Y at-il une classe java à obtenir Date de l'expression cron
Répondre
Vous pouvez vérifier org.quartz.CronExpression Il a une méthode nommée getNextValidTimeAfter que vous pouvez utiliser.
Il semble que vous pouvez utiliser l'une de ces:
Si vous utilisez Spring vous pouvez utiliser:
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);
est ici une alternative similaire à CronExpression de quartz, mais sans avoir à ajouter un programmateur à part entière à votre projet: cron-utils
Vous pouvez obtenir la date dont vous avez besoin avec ce qui suit:
//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));
Selon la description officielle, cron-utils est:
Une bibliothèque Java pour analyser, valider, migrer des fichiers cron et obtenir des descriptions lisibles par l'utilisateur. Le projet suit la Convention sur la gestion des versions sémantiques et utilise la licence Apache 2.0.
Vous pouvez également tirer parti de http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html du printemps pour cette
CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date nextRunDate= generator.next(new Date());
Merci Saugata, il a aidé et a résolu le problème :) – Unicorn