每次重启服务器,Jenkins时间会自动变化,查了很多版本的解决方法,汇总如下:
方法一、Jenkins----->系统管理----->脚本命令行
代码如下(示例):
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

或者在如下中:

方法二、用户--设置--用户定义的时区

方法三、修改虚拟机系统日期&时区
1.修改系统时间
安装在虚拟机上的CentOS7的时间分为系统时间和硬件时间。二者都修改,重启系统(init 6 )才会永久生效。
修改步骤如下:直接在CentOS中输入如下命令:
1).查看当前系统时间 date
2).修改当前系统时间 date -s "2018-2-22 19:10:30
3).查看硬件时间 hwclock --show
4).修改硬件时间 hwclock --set --date "2018-2-22 19:10:30"
5).同步系统时间和硬件时间 hwclock --hctosys
6).保存时钟 clock -w
7).重启系统(init 6)后便发现系统时间被修改了
2.修改时区
方法1
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
方法2
使用timedatectl命令
timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai
方法四、 vmware 相差8小时
如果linux系统是在vmware虚拟机中,并且上面的设置不生效,则继续按下方的步骤进行设置。

方法五、进docker容器修改jenkins时间
1.查看时间
1)先查看宿主机的系统时间
date -R
2)查看容器id
docker container ls -a
3)进docker容器查看时间
docker exec -it -u root 容器id /bin/bash
4)查看容器内部的系统时间,跟宿主机的不一致
date -R
5)查看容器内部系统时区,显示的是Etc/UTC
root@cb8e397d5308:/# cat /etc/timezone
Etc/UTC
2.修改容器时间
1)容器内部创建Asia时区文件
echo Asia/Shanghai >/etc/timezone
2)localtime可以从宿主机拷贝到容器内部(exit退出容器,在宿主机上操作docker cp)
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime
查看Jenkins上的时间就可以正常显示了
