Cron表達式解析

一、Cron表達式解析成時間

Cron表達式是一種配置定時任務執行時間的格式,常用於伺服器端、資料庫定時備份、定時發布、定時統計等場景。Cron表達式格式為: 

*    *    *    *    *    *

各個欄位分別代表:秒分時日月星期。例如下面的Cron表達式表示每周五下午十二點:

0 0 12 ? * FRI

如何將Cron表達式轉化為對應的時間?通過Java的Cron表達式解析庫即可實現。下面是使用Quartz Cron表達式解析庫的示例代碼:

// 創建解析器
CronExpression expression = new CronExpression("0 0 12 ? * FRI");
// 獲取下一次執行時間
Date nextExecutionTime = expression.getNextValidTimeAfter(new Date());

二、Cron表達式幾點幾分

如果我們只需要獲取Cron表達式中的幾點幾分,我們可以通過解析Cron表達式的格式來獲取。例如,對於Cron表達式「0 0 12 ? * FRI」,我們可以使用以下代碼獲取幾點幾分:

// 解析Cron表達式
CronExpression expression = new CronExpression("0 0 12 ? * FRI");
// 獲取下一次執行時間
Date nextExecutionTime = expression.getNextValidTimeAfter(new Date());
// 格式化時間獲取幾點幾分
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String hourAndMinute = format.format(nextExecutionTime);

三、Cron表達式解析器

想要解析Cron表達式,需要藉助解析器。常見的Cron表達式解析器包括Quartz和Spring等,這裡以Spring為例:

// 引入Maven依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

// 創建解析器
CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean();
factoryBean.setCronExpression("0 0 12 ? * FRI");
factoryBean.afterPropertiesSet();
CronTrigger trigger = factoryBean.getObject();

四、Cron表達式解析成中文

有時我們想要將Cron表達式中的英文星期轉化為中文,可以通過自定義轉換器來實現。以下是示例代碼:

// 創建解析器
CronExpression expression = new CronExpression("0 0 12 ? * FRI");
// 設置轉換器
expression.setDayOfWeekStartsAtOne(false);
expression.setExpressionLocale(Locale.CHINA);
// 獲取下一次執行時間
Date nextExecutionTime = expression.getNextValidTimeAfter(new Date());

五、常用的Cron表達式

下面列舉幾個常用的Cron表達式:

  1. 每天下午5點執行:0 0 17 * * ?
  2. 每周五下午4點30分執行:0 30 16 ? * FRI
  3. 每兩個小時執行一次:0 0 */2 ? * *
  4. 每天凌晨1點半執行:0 30 1 * * ?

六、Cron表達式每5分鐘一次

要實現Cron表達式每5分鐘一次的定時任務,可以使用以下表達式:

*/5 * * * * ?

七、Cron表達式解析在線

在線解析Cron表達式的網站有很多,例如cron.qqe2.com、cron-tab.com等,用戶只需要輸入Cron表達式即可獲取對應時間。以下是cron-tab.com的示例:

https://www.cron-tab.com/analyze/?crontab=0+0+12+%3F+*+FRI

八、Cron表達式解析C實現

Cron表達式解析C實現可以參考cron-parser(https://github.com/staticlibs/ccronexpr),通過該庫可以實現C語言的Cron表達式解析。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239585.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:17
下一篇 2024-12-12 12:17

相關推薦

  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29
  • 關係表達式的深度剖析

    一、關係表達式的定義 關係表達式是指在關係資料庫中為實現數據的最大效用和最快速度的數據檢索和存儲而定義的語法,表達式中的每一個元素(關係、屬性、常量等)均是資料庫的基本結構。 二、…

    編程 2025-04-23
  • Java二元表達式:從基礎到優化

    一、基礎知識 Java二元表達式是指只有兩個操作數以及一個運算符的表達式,例如1+2、a<b或 x*y 。在Java語言中,對二元表達式的處理十分重要且廣泛,我們需要掌握基礎…

    編程 2025-04-18
  • 切面表達式:細節決定成敗

    一、切面表達式註解 註解是Java中非常重要的一種語法標記,Spring AOP中也通過註解的方式來定義切面。在定義切面時,可以使用@Aspect註解表示一個切面類,也可以使用@B…

    編程 2025-04-13
  • Cron每小時執行一次

    一、什麼是Cron? Cron是一種在Unix和類Unix操作系統中運行後台進程或作業的工具。Cron可以讓你在指定的時間間隔執行指定的命令或腳本。 二、為什麼使用Cron? 使用…

    編程 2025-04-12
  • Cron表達式校驗詳解

    一、Cron表達式簡介 Cron表達式是一種時間計劃工具。它是由6或7個時間元素組成的字元串,用於指定時間表。 Cron觸發器通常用於調度任務或批處理作業。 Cron表達式是指定執…

    編程 2025-04-12
  • Vue Cron – 基於 Vue.js 的定時任務管理組件

    一、什麼是Vue Cron Vue Cron 是基於 Vue.js 的定時任務管理組件,它提供了一種簡單易用的方式來設定和管理定時任務。Vue Cron 提供了一個類似於 Linu…

    編程 2025-02-25
  • 深入探究cron表達式驗證

    一、驗證cron表達式的重要性 1、cron表達式是一個非常常見的工具,用於定義如何在特定的間隔進行重複運行作業以及何時啟動作業。 2、驗證cron表達式的正確性非常重要,可以確保…

    編程 2025-02-25
  • Java表達式的全面解析

    一、操作符和操作數 在Java中,表達式是由操作符和操作數組成的。操作符分為算術操作符、關係操作符、邏輯操作符和位操作符。操作數可以是常量、變數、方法調用或者其他表達式。 //算術…

    編程 2025-02-17
  • 深入了解execution表達式

    隨著Spring框架的不斷發展,execution表達式作為Spring AOP切點表達式的核心語法之一,也逐漸成為了Java開發人員必備的技能之一。execution表達式主要作…

    編程 2025-02-17

發表回復

登錄後才能評論