詹金斯显示错误的时间?

edb*_*ras 15 jenkins

我在Linux服务器上运行Jenkins并显示错误的时间:(

情况:我正在运行另一个java应用程序(在运行Jenkins的tomcat中),它在日志文件中显示正确的时间(我使用Logback通过slf4j).bios设置为UTC时间(系统时钟),如下所示:http://www.linuxsa.org.au/tips/time.html

在Linux中,在/ etc/sysconfig/clock中指示系统时钟设置为UTC以及我们所在的时区.我在UTC + 1

Linux上的运行日期命令显示正确的本地时间.示例:Sun Jan 8 12:11:35 CET 2012但Jenkins显示时间加1小时:( ...

jenkins配置显示:user.timezone = Europe/Amsterdam(UTC + 1).

我认为Jenkins(java)认为本地时钟设置为UTC,因此添加了1小时.

我该如何解决这个问题?

Qua*_*ong 19

如果您使用Docker运行Jenkins,则可以附加-e JAVA_OPTS=-Duser.timezone=TZ到docker参数.

docker run -e JAVA_OPTS=-Duser.timezone=$TZ jenkins
Run Code Online (Sandbox Code Playgroud)

所有可用的TZ都可以在这里找到.


mic*_*ael 13

请看:https://wiki.jenkins-ci.org/display/JENKINS/Change+time+zone

简而言之,您可以设置系统属性,或者修改JVM选项,

java -Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ ...
Run Code Online (Sandbox Code Playgroud)

或者在/ etc/default/jenkins(Debian)或/ etc/sysconfig/jenkins(Red Hat)中更改Jenkins配置:

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

它还提到-Duser.timezone="..."了一个选项,但可能导致问题/干扰其他情境(一些模糊的挥手和警告:时间旅行总是不可预测的).

总的来说(根据我的经验),不要改变系统时间,因为我们,我们的服务器和我们的数据生活在一个全球化的世界中,应该处理,发送,比较UTC中的所有时间,直到最新的可能时刻:通常是GUI(表示层)就在显示之前(即使那时......).(我们的构建系统结果实际上产生的数据被送入另一个时区的另一个系统.)