Jenkins Cron任务默认时区是什么?如何为声明式流水线配置柏林时区周一至周五9点执行?
Jenkins声明式流水线:时区配置与定时任务优化
先解答你的核心疑问:Jenkins Cron的默认时区
Jenkins的cron触发器默认会使用服务器操作系统的系统时区——除非你在Jenkins全局配置里手动调整过时区。如果你想确认当前生效的时区,可以进入Jenkins后台的「Manage Jenkins」→「System Configuration」,下滑到「Time Zone」部分查看;要是这个字段是空的,就说明用的是服务器系统时区。
配置柏林时区的每周一至周五9点运行
要实现你想要的定时触发逻辑,有两种靠谱的方式,我更推荐第一种:
方式1:全局设置柏林时区(一劳永逸)
如果你的Jenkins主要服务于柏林时区的团队,直接改全局时区最省心:
- 进入Jenkins后台,点「Manage Jenkins」→「System Configuration」
- 在「Time Zone」输入框里填
Europe/Berlin,保存配置。 - 然后修改你的Jenkinsfile的triggers部分,用柏林当地时间写cron表达式:
pipeline { agent none triggers { cron('0 9 * * 1-5') // 柏林时区每周一到周五上午9点准时运行 } stages { stage('stage') { agent any steps { echo 'Hello world' } } } }
这里的1-5对应周一到周五(Jenkins cron里周日是0,周一是1,周五是5),完美匹配你的需求。
方式2:不改动全局,计算UTC时间适配(不推荐)
要是你不想碰全局配置,就得把柏林时间转成UTC时间来写cron,但这种方式要手动处理夏令时切换,非常麻烦:
- 柏林冬令时(UTC+1):上午9点对应UTC的8点,cron写
0 8 * * 1-5 - 柏林夏令时(UTC+2):上午9点对应UTC的7点,cron写
0 7 * * 1-5
显然这种方式需要定期调整,不如第一种省心。
内容的提问来源于stack exchange,提问作者Farukh Khan
相关产品推荐
相关产品推荐

