今天在公司部署系统时遇到了一个关于时区的问题,记录一下
问题描述
使用Java程序调用系统时间如图:
可以看到时间23:00
,当时的时间是下午的15:00
然后我用ssh
工具连接到服务器查看时间,发现时间又是正确的。
大致推断可能是时区设置没有同步好。
解决办法
使用
timedatectl status
查看时区设置可以看到
RTC in local TZ:no
,说明硬件时钟未设置为本地时区。修改设置,使用命令
1
timedatectl set-local-rtc 1
再次查看时区设置
修改完毕,我再去系统进行测试
问题解决。
扩展
timedatectl概述
timedatectl命令可以查询和更改系统时钟和设置,你可以使用此命令来设置或更改当前的日期,时间和时区,
或实现与远程NTP服务器的自动系统时钟同步。
注意:datetimectl命令自CentOS7 版本被引入。
常用命令
查看当前时间/日期/时区
1 | timedatectl status |
查看所有可用时区
1 | timedatectl list-timezones |
设置时区
1 | timedatectl set-timezone “时区信息” |
设置UTC
1 | timedatectl set-timezone UTC |
设置时间
1 | timedatectl set-time HH:MM:SS |
设置日期
1 | timedatectl set-time YYYY-MM-DD |
设置日期时间
1 | timedatectl set-time “YYYY-MM-DD HH:MM:SS” |
设置硬件时钟为本地时间
1 | timedatectl set-local-rtc 1 |
设置硬件时钟为UTC时间
1 | timedatectl set-local-rtc 0 |
启动NTP时间同步
1 | timedatectl set-ntp true |
禁用NTP时间同步
1 | timedatectl set-ntp false |
更新系统时间
1 | 格式:ntpdate [-nv] [ IP/hostname] |
提示:command not found
,用yum
安装一下
1 | yum install -y ntpdate |