【问题标题】:How to change the time zone in Jenkins?如何更改詹金斯的时区?
【发布时间】:2017-02-13 10:41:50
【问题描述】:

我想改变詹金斯的时区。

我已更改 Jenkins 安装服务器的时区,但 Jenkins UI 显示的时间不同。

我需要为 Jenkins UI 设置 PST 时间。我该怎么做?

【问题讨论】:

    标签: jenkins timezone jenkins-plugins


    【解决方案1】:

    登录到 jenkins 并转到右上角并单击用户

    然后单击配置并向下滚动到最后一个选项“用户定义的时区”,您可以在此处找到不同的时区。

    我使用的是 jenkins 版本 2.222.3。

    【讨论】:

    • 请注意,此选项是在 2.203 版中添加的 issues.jenkins-ci.org/browse/JENKINS-19887
    • 我设置了时区“用户定义的时区”——我出发到美洲/芝加哥——不起作用。使用 Jenkins 2.249.1
    • 我的构建更新并为我显示正确的时间。 2.319.1
    【解决方案2】:

    在 Jenkins2 上,您可以通过 Groovy 控制台在运行时设置时区。只需打开“管理 Jenkins >> 脚本控制台”并输入

    System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'America/Los_Angeles')

    例如。 如果您没有机会更改启动变量但对实例具有管理员权限,则特别有用。 (通常在容器化设置中找到)。唯一的缺点:重启时设置消失了。

    【讨论】:

    • 这是一个很好的答案。无需重启!
    • 在 jenkins 重新启动时,您将丢失此更改
    【解决方案3】:

    https://wiki.jenkins-ci.org/display/JENKINS/Change+time+zone。 Jenkins 应该尊重为 java 设置的时区。但是您可以通过添加以下命令来强制 Jenkins 使用特定的时区来启动 Jenkins:

    java -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Los_Angeles
    

    这应该将您的时区设置为 PST。

    【讨论】:

    • 我已在/etc/sysconfig/jenkins 中添加为:JAVA_ARGS="java - Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Los_Angeles" 下面的JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"。然后通过:/etc/init.d/jenkins restart 重新启动jenkins 时间没有得到反映。即使现在jenkins UI 显示时间为:2017 年 2 月 14 日上午 8:49 UTC 在构建日志中 ** 同样出现在页面底部:**页面生成时间:2017 年 2 月 14 日上午 8:50:45 UTC 在詹金斯:系统日志:user.timezone UTC
    • 尝试在/etc/sysconfig/jenkins中添加-Duser.timezone=America/New_YorkJENKINS_JAVA_OPTIONS
    • 通过添加尝试,JENKINS_JAVA_OPTIONS=-Duser.timezone=America/New_YorkJENKINS_JAVA_OPTIONS="-Djava.awt.headless=true" JAVA_ARGS="java - Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Los_Ange‌​les" in /etc/sysconfig/jenkins. 然后通过 :/etc/init.d/jenkins restart 重新启动 jenkins 但时间没有反映在 jenkins UI 中仍然显示 Feb 14 , 2017 年 9:35:06 AM UTC 当前 ptc 时间 2017 年 2 月 14 日星期二 01:38:03 PST
    • JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Duser.timezone=America/Los_Angeles" in /etc/sysconfig/jenkins 时间更改为 PST
    • 在 Ubuntu 16.04 FWIW 上,编辑它的位置在 /etc/default/jenkins 中,将其添加到 JAVA_ARGS
    【解决方案4】:

    在尝试寻找答案时,发现 issue 已为此打开。

    虽然问题状态是OPEN, Unresolved,但我看到了一个选项,至少对于Console Output 中的Console Output 时间戳使用浏览器时区@:

    【讨论】:

    • 这个选项在哪里?我在任何地方都没有看到它。
    • @Mugen,如上所述,Timestamps 选项在每个构建的 Console Output 页面中可用。请注意,您必须安装 Timestamper 插件并在构建的 Build Environment 部分中启用 Add timestamps to the Console Output 选项配置。
    • 此答案中屏幕截图片段的上下文位于特定构建的控制台输出部分中。这是一个棘手且不是超级有用的设置,因为它只是每次构建的装饰。
    • 对我来说,检查 Use browser timezone 选项会导致控制台中没有时间戳。没有它,时间戳确实有效。有任何想法吗?使用 FIrefox 77.0.1、Fedora 32。
    • 我还看到选择“使用浏览器时区”会使时间戳消失(firefox 78.0.1)。因为我真的只关心步骤之间经过的时间,所以这对我来说没什么大不了的。
    【解决方案5】:

    我正在使用 ubuntu 版本 16.04 和 jenkins 版本 Jenkins 版本。 2.164.3 我尝试使用 java -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Los_Angeles 但对我不起作用。 然后我最终使用了这个命令- sudo dpkg-reconfigure tzdata 这将为您提供一个 GUI 来设置您的时区,然后您必须通过命令重新启动 jenkins Sudo /etc/init.d/jenkins stopsudo /etc/init.d/jenkins start

    希望这会有所帮助! 干杯 普拉提克

    【讨论】:

      【解决方案6】:

      我选择了系统范围的解决方案:

      我有一个在 AWS(在 us-east-2 中)上运行的 bitnami 图像(默认为 UTC)。该服务器所做的所有工作都在我的本地时区,所有访问它的人都是本地人。所以我将/etc/timezone/etc/localtime 更改为Australia/Sydney 并重新启动Jenkins。

      【讨论】:

        猜你喜欢
        • 2022-11-21
        • 1970-01-01
        • 2021-09-12
        • 2013-07-16
        • 2012-10-22
        • 1970-01-01
        • 2020-05-22
        • 2022-08-17
        • 1970-01-01
        相关资源
        最近更新 更多