本文介绍 Linux 如何修改时区及时间

修改系统时区:

1、替换 /etc/localtime 文件

将相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai 替换 /etc/localtime 文件。

一般大陆用户使用 Asia/Shanghai 这个文件就行了,海外用户请自行寻找你所在区域的时区文件。

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

运行上面的命令后,使用 datehwclock 命令查看当前时间,发现已经变成你所在时区的时间了,这两个命令都是经过时区换算以后得出的时间。但此时 hwclock --localtime 命令查看的依旧是系统硬件时间。

2、修改 /etc/sysconfig/clock 文件

注:修改 /etc/sysconfig/clock 文件只对 hwclock 命令有效,因为系统启动时读取该文件从而根据内容调用 hwclock 命令,hwclock 命令是从系统硬件读取时间。

对 /etc/sysconfig/clock 文件的解读如下:官方解释 sealinger的博客

 

配置文件里面支持 UTCARCSRMZONE 这几个配置选项。

  • UTC – 指定 BIOS 中保存的时间是否是 GMT/UTC 时间,true 或 yes 表示 BIOS 里面保存的时间是 UTC 时间,false 或 no 表示 BIOS 里面保存的时间是本地时间。
  • ZONE – 指定时区,ZONE 的值是一个文件的相对路径名,这个文件是相对 /usr/share/zoneinfo 目录下的一个时区文件。比如 ZONE 的值可以是:“Asia/Shanghai”, “US/Pacific”, “UTC” 等(默认为ZONE=”Etc/UTC”)。
  • ARC – 这个选项一般配置 false 或 no,在一些特殊硬件下才配置该选项为 true 或 yes。
  • SRM – 同 ARC,该选项一般配置 false 或 no,在一下特殊硬件下才配置该选项为 true 或 yes。

 

一般这里维持默认或者改为:

ZONE=Asia/Shanghai
UTC=false
ARC=false

 

修改日期时间:

1、用 date 命令修改

date -s 10/13/2014
date -s 10:14

date 命令修改过后,发现用 date 命令查看时间是显示修改后的时间。但是 reboot 重启系统后,时间被根据 UTC 和时区又给换算回原来的时间。

使用 hwclock 命令查看发现时间变成之前改过的时间,使用 hwclock --localtime 命令发现系统硬件时间变成了改过的时间-时区。原因是系统在关闭时,会同步经过换算过的系统时间到硬件时间。

2、系统时间和硬件时间互相同步

hc 代表硬件时间,sys 代表系统时间

hwclock --hctosys 表示把硬件时间同步到系统时间

hwclock --systohc 表示把系统时间同步到硬件时间

3、建议开启 ntp 时间同步

yum -y install ntp
ntpdate -d cn.pool.ntp.org
#cn.pool.ntp.org也可以换成其他信任的ntp服务器
service ntpd restart

 

文章参考了以下网站内容:

http://rashost.com/blog/centos-timezone-configure

http://www.sealinger.com/archives/221/


原创文章,转载请以链接形式注明出处:https://blog.ttionya.com/article-435.html