CronUtils.java 1.6 KB

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