如何让 Jenkins CI 在 debian Squeeze 上使用本地时间而不是 UTC

drg*_*rgn 17 time timezone jenkins

我在 debian 上安装了 Jenkins-ci。

当前默认时区:“美国/多伦多”
当地时间现在是:2012 年 7 月 9 日星期一 16:00:57 EDT。
现在的世界时间是:2012 年 7 月 9 日星期一 20:00:57 UTC。

在 /etc/default/rcS 文件中,我有:

UTC=否

不幸的是,这不起作用,在詹金斯的系统信息中:

user.timezone 等/UTC

我搜索了几个小时......不幸的是找不到修复任何帮助将不胜感激。

感谢您的时间

gar*_*les 17

您需要在启动 Jenkins 时将所需的 user.timezone 值作为 JVM 参数传递。Java 命令行将类似于:

$JAVA_HOME/java -Duser.timezone="America/Toronto" [other JVM parameters] $JENKINS_HOME/jenkins.jar
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不熟悉 Debian 安装,但 JVM 参数应该在 /etc/init.d/jenkins 脚本或从该脚本引用的属性文件中定义。


bis*_*hop 11

三年后,我发现了几个让这个工作的问题。因此,我将详细说明已接受的答案(这是正确的)并为 CentOS 添加完整的答案。


陷阱 #1:要更改的 Jenkins 设置

当前关于更改时区的Jenkins文档说要定义user.timezone org.apache.commons.jelly.tags.fmt.timeZone。但是,我发现两者都是必要的。果冻适用于 Jenkins 和一些插件,而用户适用于其他插件。


陷阱 #2:要更新的操作系统设置

对于美国东部的 CentOS,编辑/etc/sysconfig/jenkins为:

JENKINS_JAVA_OPTIONS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York -Duser.timezone=America/New_York"
JENKINS_ARGS=""
Run Code Online (Sandbox Code Playgroud)

如果将这些-D设置放入 中JENKINS_ARGS,它将不起作用。


陷阱 #3:重新启动

您必须从命令行重新启动整个服务。简单地做一个詹金斯安全重启充分。所以:

sudo service jenkins restart
Run Code Online (Sandbox Code Playgroud)

完成所有这些后,检查Jenkins 系统信息面板中的两个时区设置是否匹配:http : //jenkins.example.com/systemInfo


jmo*_*253 7

在 Ubuntu 14.04 中,上述解决方案均不适用于我,但我最终运行了以下命令,该命令会调出一个界面,其中时区可以从默认(未选择)更改为更具体的内容:

sudo dpkg-reconfigure tzdata

首先,系统会提示您选择大陆(即美国、亚洲等),然后选择城市,在我的情况下,这导致印度 IST 时区的“亚洲/加尔各答”。

请参阅UbuntuTime - 使用命令行

另外,更改时区后,我重新启动了Jenkins:

sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start

然后验证时间是本地IST时间。在 中http://<yourservername>/systemInfo,由用户 bishop 提供,在 System Properties 部分下,对于“user.timezone”属性,我现在将“Asia/Kolkata”视为其值。