我在 debian squeeze 上安装了 Jenkins-ci。
当前默认时区:'America/Toronto' 现在当地时间为:2012 年 7 月 9 日星期一 16:00:57 EDT。 现在世界时间是:2012 年 7 月 9 日星期一 20:00:57 UTC。
在 /etc/default/rcS 文件中我有:
UTC=否
不幸的是,这不起作用,在詹金斯的系统信息中:
用户.时区 Ec/UTC
我搜索了几个小时..不幸的是找不到解决方法,任何帮助都将不胜感激。
感谢您的时间
答案1
启动 Jenkins 时,您需要将所需的 user.timezone 值作为 JVM 参数传入。Java 命令行将如下所示:
$JAVA_HOME/java -Duser.timezone="America/Toronto" [other JVM parameters] $JENKINS_HOME/jenkins.jar
不幸的是,我不熟悉 Debian 安装,但 JVM 参数应该在 /etc/init.d/jenkins 脚本中或从该脚本引用的属性文件中定义。
答案2
三年后,我发现了几个让这个工作起来的陷阱。所以,我将详细说明公认的答案(这是正确的),并为 CentOS 添加一个完整的答案。
陷阱 #1:需要更改的 Jenkins 设置
当前的詹金斯更改时区的文档说定义user.timezone
或者 org.apache.commons.jelly.tags.fmt.timeZone
。但我发现两个都是必要的。果冻的适合詹金斯,一些插件,而用户插件则适用于其他插件。
陷阱 #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=""
如果将这些-D
设置放入JENKINS_ARGS
,它将不起作用。
陷阱 3:重新启动
您必须从命令行重新启动整个服务。只需执行 Jenkins 安全重启即可不是足够了。所以:
sudo service jenkins restart
完成所有这些操作后,请检查两个都时区设置与您的 Jenkins 系统信息面板中的设置相匹配:http://jenkins.example.com/systemInfo
答案3
在 Ubuntu 14.04 中,上述解决方案都不适用于我,但我最终运行了以下命令,它会调出一个界面,可以在其中将时区从默认(未选择)更改为更具体的时区:
sudo dpkg-reconfigure tzdata
首先,系统会提示您选择大洲(即美洲、亚洲等),然后选择城市,在我的情况下,选择印度 IST 时区的“亚洲/加尔各答”。
此外,更改时区后,我重新启动了詹金斯:
sudo /etc/init.d/jenkins stop sudo /etc/init.d/jenkins start
然后验证时间是否为当地 IST 时间。在http://<yourservername>/systemInfo
用户 bishop 提供的系统属性部分下,对于“user.timezone”属性,我现在看到“Asia/Kolkata”作为其值。
答案4
如果您在 Apache Tomcat 中运行 Jenkins,请将这些添加到 <Apache-Tomcat-Dir>/conf/catalina.properties:
user.timezone=America/New_York
org.apache.commons.jelly.tags.fmt.timeZone=America/New_York
两者都需要。