jenkins日期时区不对的修改方法

本文介绍如何通过修改Jenkins配置文件来更改Jenkins服务器的时区设置,确保Jenkins能够正确显示所需时区的时间。
sudo vi /etc/default/jenkins

修改

JAVA_ARGS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Dfile.encoding=UTF-8 -Djava.awt.headless=true"  # Allow graphs etc. to work even when an X server is present

给java启动的进程指定参数org.apache.commons.jelly.tags.fmt.timeZone为你需要显示的时区,不知道时区名称可以再查一下。

该方法来自jenkins官网https://wiki.jenkins-ci.org/display/JENKINS/Change+time+zone


修改完后

sudo service jenkins restart

### 修改 Jenkins 服务器的时区设置 对于不同部署方式下的 Jenkins 实例,调整其时区方法有所差异。 #### 对于 Windows 上通过安装包形式运行的 Jenkins 可以在 Jenkins 的配置文件 `jenkins.xml` 中加入 JVM 参数来改变时区。具体操作为编辑位于默认路径 C:\Program Files\Jenkins 下的 jenkins.xml 文件,在 `<arguments>` 节点内增加 `-Duser.timezone=Asia/Shanghai` 这样的参数[^1]。完成上述改动之后记得要重新启动 Jenkins 服务以便使新的设置生效。 ```xml <service> ... <arguments>-Xrs -jar "%BASE%\jenkins.war" --httpPort=8080 -Duser.timezone=Asia/Shanghai</arguments> ... </service> ``` #### 当 Jenkins 是基于 Docker 容器化部署时 一种方法是在启动容器时挂载宿主机的时间配置到容器里,即利用 `-v /etc/localtime:/etc/localtime` 来保持两者之间的一致性;另一种则是直接登录至容器内部并执行命令复制目标地区的 timezone 文件覆盖 `/etc/localtime` 同时更新 `/etc/timezone` 文件的内容指向所需的地区名称,例如: ```bash cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo 'Asia/Shanghai' >/etc/timezone ``` 此外还可以考虑在构建镜像阶段就做好这些工作从而简化后续运维流程[^5]。 #### 使用 Java 属性的方式 无论是哪种类型的 Jenkins 环境都可以尝试通过编程手段影响应用层面所感知到的时间区域。这可以通过向 Jenkins 初始化脚本追加一行代码实现,比如将下面这段话放在合适的位置(如 Groovy Hook Scripts 或者初始化插件中) ```groovy System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai') ``` 这种方法适用于那些无法轻易触及底层操作系统的情况但是效果可能不如前两种持久稳定[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值