跳到正文
cron.surf

Quartz cron 转 AWS EventBridge

Quartz 的字段是 秒 分 时 日 月 星期 [年];AWS EventBridge 的字段是 cron(分 时 日 月 星期 年)。粘贴表达式即可转换,不能精确对应的部分会标出原因和替代写法。

“在09:00, 星期一至星期五”

目标 · AWS EventBridge等价
cron(0 9 ? * 2-6 *)
cron() 六个字段,一个日期字段必须是 ?。不设时区就是 UTC。

其他平台上的相同调度

crontab等价
0 9 * * 1-5
按系统时区运行;cronie 还支持 CRON_TZ=。
0 9 * * 1-5
按 UTC 运行,除非条目设置了 timezone:。

在 GitHub 上总是晚跑? 让它准点运行 →

0 9 * * 1-5
设置 spec.timeZone,否则用控制器的本地时区。
Spring等价
0 0 9 * * 1-5
六个字段,秒在前;设置 zone=,否则用服务器时区。

接下来 10 次运行

在你的浏览器中计算
  1. 计算中…

Quartz 与 AWS EventBridge 的区别

QuartzAWS EventBridge
字段秒 分 时 日 月 星期 [年]cron(分 时 日 月 星期 年)
周日1(SUN=1 … SAT=7)1(SUN=1 … SAT=7)
日和星期都设置时其中一个必须是 ?其中一个必须是 ?
特殊字符L W # LW L-nL W #(仅一个 #)
简写无无;间隔用 rate()
时区inTimeZone(),否则 JVM 时区Scheduler 可设 IANA 时区,默认 UTC
最短间隔1 秒1 分钟

常用调度转换结果

QuartzAWS EventBridge
每 5 分钟0 */5 * * * ?cron(0/5 * * * ? *)
每小时0 0 * * * ?cron(0 * * * ? *)
每分钟0 * * * * ?cron(* * * * ? *)
每 10 分钟0 */10 * * * ?cron(0/10 * * * ? *)
每 15 分钟0 */15 * * * ?cron(0/15 * * * ? *)
每 30 分钟0 */30 * * * ?cron(0/30 * * * ? *)
每天零点0 0 0 * * ?cron(0 0 * * ? *)
每天早上 9 点0 0 9 * * ?cron(0 9 * * ? *)
工作日早上 9 点0 0 9 ? * 2-6cron(0 9 ? * 2-6 *)
每周一0 0 0 ? * 2cron(0 0 ? * 2 *)
每月 1 号0 0 0 1 * ?cron(0 0 1 * ? *)
每 6 小时0 0 */6 * * ?cron(0 0/6 * * ? *)
每周日零点0 0 0 ? * 1cron(0 0 ? * 1 *)
每 2 小时0 0 */2 * * ?cron(0 0/2 * * ? *)
每 12 小时0 0 */12 * * ?cron(0 0/12 * * ? *)
每天中午 12 点0 0 12 * * ?cron(0 12 * * ? *)
每周五0 0 0 ? * 6cron(0 0 ? * 6 *)
每月最后一天0 0 0 L * ?cron(0 0 L * ? *)
每季度0 0 0 1 */3 ?cron(0 0 1 1/3 ? *)
每 2 分钟0 */2 * * * ?cron(0/2 * * * ? *)
每 3 小时0 0 */3 * * ?cron(0 0/3 * * ? *)
每天早上 6 点0 0 6 * * ?cron(0 6 * * ? *)
每天晚上 6 点0 0 18 * * ?cron(0 18 * * ? *)
每天两次0 0 */12 * * ?cron(0 0/12 * * ? *)
工作日晚上 6 点0 0 18 ? * 2-6cron(0 18 ? * 2-6 *)
周末上午 10 点0 0 10 ? * 1,7cron(0 10 ? * 1,7 *)
每月 15 号0 0 0 15 * ?cron(0 0 15 * ? *)
每月第一个周一0 0 9 ? * 2#1cron(0 9 ? * 2#1 *)
每月最后一个周五0 0 17 ? * 6Lcron(0 17 ? * 6L *)
每年一次0 0 0 1 1 ?cron(0 0 1 1 ? *)
每 30 秒*/30 * * * * ?无法转换
每 3 分钟0 */3 * * * ?cron(0/3 * * * ? *)
每 20 分钟0 */20 * * * ?cron(0/20 * * * ? *)
每 4 小时0 0 */4 * * ?cron(0 0/4 * * ? *)
每 8 小时0 0 */8 * * ?cron(0 0/8 * * ? *)
每天凌晨 1 点0 0 1 * * ?cron(0 1 * * ? *)
每天凌晨 2 点0 0 2 * * ?cron(0 2 * * ? *)
每天凌晨 3 点0 0 3 * * ?cron(0 3 * * ? *)
每天早上 8 点0 0 8 * * ?cron(0 8 * * ? *)
每个工作日0 0 0 ? * 2-6cron(0 0 ? * 2-6 *)
每个周末0 0 0 ? * 1,7cron(0 0 ? * 1,7 *)
每周二0 0 0 ? * 3cron(0 0 ? * 3 *)
每周三0 0 0 ? * 4cron(0 0 ? * 4 *)
每周四0 0 0 ? * 5cron(0 0 ? * 5 *)
每周六0 0 0 ? * 7cron(0 0 ? * 7 *)
每 6 个月0 0 0 1 */6 ?cron(0 0 1 1/6 ? *)
每 10 秒*/10 * * * * ?无法转换
每 5 秒*/5 * * * * ?无法转换

常见问题

所有 Quartz 表达式都能转成 AWS EventBridge 吗?

不是全部。本页 48 个常用调度中有 45 个可以等价转换,其余需要替代写法,转换器会给出。

Quartz 和 AWS EventBridge 里周日怎么写?

Quartz:1(SUN=1 … SAT=7)。AWS EventBridge:1(SUN=1 … SAT=7)。

时区会一起转过去吗?

表达式本身不带时区。Quartz:inTimeZone(),否则 JVM 时区。AWS EventBridge:Scheduler 可设 IANA 时区,默认 UTC。