解析Cron表达式

摘要:
然而,我们的执行时间配置是cron表达式,不能通过最后一次执行时间+执行间隔获得。

1.引入

      有些时候我们不但需要定时执行任务,而且需要获得下一次执行的时间。

      但是我们执行时间配置的是cron表达式,不能够根据上次执行的时间+执行间隔这种方式来获得。所以我们必须要解析cron

2.方法

  1.  
    Date curTime = new Date();
  2.  
    System.out.println(curTime);
  3.  
     
  4.  
    CronExpression expression;
  5.  
    try
  6.  
    {
  7.  
    expression = new CronExpression("0 30 15 * * ?");
  8.  
    Date newDate = expression.getNextValidTimeAfter(curTime);
  9.  
    System.out.println(newDate);
  10.  
    } catch (ParseException e) {
  11.  
    logger.error("fail to parse cron express", e);
  12.  
    } catch (Exception e) {
  13.  
    logger.error("fail to update rule nextTime", e);
  14.  
    }

          结果为:

Wed Jun 24 19:11:52 CST 2015
Thu Jun 25 15:30:00 CST 2015

       说明:

       (1)当然需要引入Quartz的依赖

  1.  
    <dependency>
  2.  
    <groupId>org.opensymphony.quartz</groupId>
  3.  
    <artifactId>quartz-all</artifactId>
  4.  
    <version>1.6.1</version>
  5.  
    </dependency>

       (2)getNextValidTimeAfter(Date date)是根据cron表达式,来获得传入时间之后的第一个执行时间

                 如上例中:当前时间为6月24日19:11:52,cron表示每天的15:30:00来执行,那么返回的结果就是6月25日15:30:00

免责声明:文章转载自《解析Cron表达式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇元素跟随着滚动条运动面试题--赵银科技下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux命令行下修改系统时间、时区

date查看时间以及时区 图a是est时区,和HONGkong时间查了一个小时。 # 保存设置$ sudo mv /etc/localtime /etc/localtime.old # 设置时区 $ sudo ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime # 这里已经改完了 # 更新...

Oracle中的日期和字符串互相转换

转载出处:http://blog.sina.com.cn/s/blog_44a005380100k6rv.html TO_DATE格式(以时间:2007-11-02   13:45:25为例)            Year:              yy two digits 两位年                显示值:07         yyy...

iOS开发基础知识--碎片38

iOS开发基础知识--碎片38 iOS开发基础知识--碎片38 iOS开发基础知识--碎片38 1:FCUUID获取设备标识的运用 a:作者 githun地址 https://github.com/fabiocaccamo/FCUUID 因为里面还用到作者的另外一个类UICKeyChainStore地址:https://github.com/kishik...

在Django / DRF中正确处理日期时间/时区

我正在尝试为我的网络应用程序进行正确的日期处理设置.我有一个看起来像这样的模型 class Entity(models.Model): name = models.CharField(max_length=255) date = models.DateTimeField() 用户可以向我的DRF端点/ api / v1 / entity /...

PHPExcel正确读取excel表格时间单元格(转载)

error_reporting(E_ALL); date_default_timezone_set('Asia/shanghai'); /** PHPExcel_IOFactory */ require_once '../Classes/PHPExcel/IOFactory.php'; $inputFileName = '6081076641077444...

DOS 如何取当前时间做为文件名?

如果要取得以日期为文件名的文件,假设在命令行下键入date返回形式为:当前日期: 2005-06-02 星期四echo > %date:~0,4%%date:~5,2%%date:~8,2%~表示从环境变量的内容的左边开始,~m,n      m表示从第m个字符开始,n表示取n个字符。 下面以一个表格示例下,可能更容易懂: 日期和时间组合:%dat...