解析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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM