如何让jenkinsCI使用当地时间,而不是在debian挤压UTC

我有一个debian挤压jenkins安装。

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

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

 UTC =没有

不幸的是,这是行不通的,在jenkins的系统信息:

 user.timezone等/ UTC

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

谢谢你的时间

当您启动Jenkins时,您需要将您所需的user.timezone值作为JVMparameter passing。 Java命令行将如下所示:

$JAVA_HOME/java -Duser.timezone="America/Toronto" [other JVM parameters] $JENKINS_HOME/jenkins.jar 

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

三年后,我发现有几个问题需要解决。 所以,我会详细说明接受的答案(这是正确的),并为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="" 

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


陷阱#3:重新启动

您必须从命令行重新启动整个服务。 只是做一个jenkins安全重启是不够的。 所以:

 sudo service jenkins restart 

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

在Ubuntu 14.04中,上述解决scheme都没有为我工作,但是我最终运行了下面的命令,该命令将时区从缺省(没有选中)改为更具体的界面:

sudo dpkg-reconfigure tzdata

首先,提示您select非洲大陆(即美洲,亚洲等),然后select这个城市,在我的情况下,这个城市导致了印度IST时区的“亚洲/加尔各答”。

请参阅UbuntuTime – 使用命令行 。

另外,在改变时区之后,我重新启动了Jenkins:

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

然后validation时间是在本地IST时间。 在用户bishop提供的http://<yourservername>/systemInfo ,在“系统属性”部分的“user.timezone”属性下,我现在看到“Asia / Kolkata”作为其值。

如果您在Apache Tomcat中运行Jenkins,请将它们添加到<Apache-Tomcat-Dir> /conf/catalina.properties:

 user.timezone=America/New_York org.apache.commons.jelly.tags.fmt.timeZone=America/New_York 

两者都需要。

如果这涉及到基于cron时间表的作业的执行(即定期生成),则可以按每个作业的cron时间表设置时区:

 TZ=Europe/Dublin 0 7 * * 1-5