懒羊羊
2024-01-31 e57a8990ae56f657a59c435a0613c5f7a8728003
提交 | 用户 | 时间
e57a89 1 package com.jcdm.quartz.util;
2
3 import java.text.ParseException;
4 import java.util.Date;
5 import org.quartz.CronExpression;
6
7 /**
8  * cron表达式工具类
9  * 
10  * @author jc
11  *
12  */
13 public class CronUtils
14 {
15     /**
16      * 返回一个布尔值代表一个给定的Cron表达式的有效性
17      *
18      * @param cronExpression Cron表达式
19      * @return boolean 表达式是否有效
20      */
21     public static boolean isValid(String cronExpression)
22     {
23         return CronExpression.isValidExpression(cronExpression);
24     }
25
26     /**
27      * 返回一个字符串值,表示该消息无效Cron表达式给出有效性
28      *
29      * @param cronExpression Cron表达式
30      * @return String 无效时返回表达式错误描述,如果有效返回null
31      */
32     public static String getInvalidMessage(String cronExpression)
33     {
34         try
35         {
36             new CronExpression(cronExpression);
37             return null;
38         }
39         catch (ParseException pe)
40         {
41             return pe.getMessage();
42         }
43     }
44
45     /**
46      * 返回下一个执行时间根据给定的Cron表达式
47      *
48      * @param cronExpression Cron表达式
49      * @return Date 下次Cron表达式执行时间
50      */
51     public static Date getNextExecution(String cronExpression)
52     {
53         try
54         {
55             CronExpression cron = new CronExpression(cronExpression);
56             return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
57         }
58         catch (ParseException e)
59         {
60             throw new IllegalArgumentException(e.getMessage());
61         }
62     }
63 }