如何将cron表达式转换为日期或时间

我试图将cron表达式转换为日期。 例如,这是0 0 23 1 1-12 ? 表达。 我想转换为相应的日期。 我该如何实现这一目标?

这是我尝试过但它只是给出描述,人类可读,但我想要实现正确的日期格式。

 import java.text.ParseException; import java.util.Date; import org.quartz.CronExpression; public class CRON { public static void main(String args[]) throws ParseException { //AutoRegistrationJobDao obj=new AutoRegistrationJobDao(); //obj.updateLastAutoRegSchdl(); String cron ="0 0 23 1 1-12 ?"; System.out.println("cron :"+cron); CronExpression cronExpression =new CronExpression("0 0 23 1 1-12 ?"); System.out.println(cronExpression.getExpressionSummary()); System.out.println(cronExpression.getFinalFireTime()); //System.out.println(cronExpression.getNextValidTimeAfter(date)); try { CronExpression c =new CronExpression(cron); Date date=c.getFinalFireTime(); System.out.println(date); System.out.println(c.getFinalFireTime()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

这是我试过的,我使用多种方法并使用不同的类,但没有运气输出:

 seconds: 0 minutes: 0 hours: 23 daysOfMonth: 1 months: 1,2,3,4,5,6,7,8,9,10,11,12 daysOfWeek: ? lastdayOfWeek: false nearestWeekday: false NthDayOfWeek: 0 lastdayOfMonth: false 

* / 20 * * * *命令 – >这将在20分钟内执行一次。 这不能映射到单个时间点。

给定一个cron表达式 – 当作业被触发时,会有多个实例。 所以你不能指望一对一映射b / w cron和一个日期实例。

如果您有日期参考,则可以从参考日期算出下一个作业触发时间等。

请检查这个是否有效!!!

 import org.springframework.scheduling.support.CronSequenceGenerator; import java.util.Date; CronSequenceGenerator generator = new CronSequenceGenerator("0 0 23 * * ?"); Date nextRunDate= generator.next(new Date()); System.out.println("Date:: " + nextRunDate);