修正JIRA系统时间

现象

在JIRA上建立问题单、添加备注等操做的显示时间与系统时间或运行JIRA的机器的时间不一致。html

缘由

JIRA使用的时区(timezone) 是由 Java Virtual Machine 控制的,虚拟机默认使用系统时区。若是没有配置,可能会致使JIRA显示的时间与系统时间不一致的状况。java

再深一点,日期和时间是被保存在JIRA数据库中,取决于数据库的时区信息。好比,对于PostgreSQL的 documentation:mysql

全部时区声明的日期和时间都被保存在UTC内部。在显示到客户端以前,会根据时区配置,将其转换为特定时区的本地时间。sql

这个能够进一步证实:数据库

jira6414=> select id, created from jiraissue;
  id   |          created           
-------+----------------------------
 10000 | 2016-09-06 18:41:53.983+00
 10001 | 2016-09-06 22:12:49.983+00
...
 10300 | 2016-09-15 17:06:25.544+00
 
jira6414=> SET TIME ZONE 'PST8PDT';
SET
jira6414=> select id, created from jiraissue;
  id   |          created           
-------+----------------------------
 10000 | 2016-09-06 11:41:53.983-07
 10001 | 2016-09-06 15:12:49.983-07
...
 10300 | 2016-09-15 10:06:25.544-07

 MySQL的时区能够按照 here 描述的方法进行配置。api

此外,当经过另一个服务器回复XML备份时,若是时区发生变化,会影响到数据库的全部时间信息。这将在后边详细介绍。服务器

JRASERVER-26039 - Verify the system timezone when an XML backup is restored RESOLVED .app

解决办法

  • 根据咱们Setting the timezone for the JAVA environment(见下文) KB介绍的方法修改时区。
  • 确保在JIRA数据库中配置了所需时区的输出。
  • 确认默认时区不会被已经安装的JIRA插件在运行时修改,这会致使很严重的问题。

设置JAVA环境时区

这篇知识库文章是专门为Atlassian服务器平台编写的,由于与Atlassian云平台的功能差别,这篇文章提到的不能应用在云产品上。

概述

Jira应用中的功能可能会依赖配置在JAVA环境中的时区,默认状况下,这个时区会操做系统中获取,可是,能够经过为JVM虚拟机添加额外参数来改变默认方式。jvm

时区能够经过修改运行JAVA的服务器时间进行修改,或者经过以下解决介绍的修改配置的方式:post

修改时区

时区能够经过以下JVM参数来修改,根据咱们 Setting Properties and Options on Startup 文章中的方式实现。下边的李四将它设置为 America/Chicago:

-Duser.timezone=America/Chicago

 (info) Wikipedia上的时区列表List of TZ Database Time Zones 详细介绍了全部可设置的时区信息。

示例时区

Timezone Code
Shanghai Asia/Shanghai
Los Angeles America/Los_Angeles
New York America/New_York
Paris Europe/Paris
Rome Europe/Rome
UTC UTC
Madrid Europe/Madrid
相关文章
相关标签/搜索