文章目录
- 问题
- 解决
- 处理时区问题
- date查看时间、时区
- timedatectl查看时间、时区
- 查看localtime
- 设置时区
- 处理时间问题
问题
- 中国使用的是东八区上海时间,而linux服务器,一般默认是0时区
UTC
,所以需要将时区改为东八区CST
- 将时区改为东八区后,显示的实际仍然不对,仍然差8小时或16小时,这说明时间不对
- 时间修改正确后,服务器重启,时间显示又错误了,因为没改硬件时钟时间
解决
- linux系统时间,与本地时间不一致,一般有两种情况
- 一是时区设置错误,不是当地使用时区
- 二是时间设置错误,未联网校时,或者人为不小心设置错了
处理时区问题
date查看时间、时区
- 首先查看时间是否正确,与当地时间一致,可使用以下命令
date
date -R
date
查看日期时间,date -R
则会把时区一起显示出来- 可以看到上面的时间错了(与当地时间误差几分钟),下面时间虽然对了但是时区不对(应该为+0800)
timedatectl查看时间、时区
- 也可以使用
timedatectl
查看和设置时区
- Local time:当前使用的时区的时间,也就是
date
命令显示的时间 - Universal time:世界时间,也就是0时区时间,世界通用的协调时间
- RTC time:硬件时钟时间,关机也会
- Time zone:现正使用的时区,可以看到上面是
CST
,中国时区,是对的
查看localtime
- 也可以直接使用
ls -l /etc/localtime
查看系统当前的时区
设置时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone Asia/Shanghai
处理时间问题
- 如果时区已经设置对了,时间显示还是不对,可以手动设置下时间,或者使用互联网校时
- 需要安装
ntpdate
,再校时即可,但是需要在联网情况下进行
yum install -y ntp ntpdate
ntpdate 0.asia.pool.ntp.org
date
- 如果没有联网,只能直接使用
date -s 日期 时间
设置了 - 时间显示正确后,查看下硬件时间,顺便把硬件时间也改对,防止重启失效
hwclock --show
# hc代表硬件时间,sys代表系统时间,即用系统时钟同步硬件时钟
hwclock --systohc
## 或
clock --systohc
hwclock -w
date