CentOS 和 Ubuntu 的时区文件是 /etc/localtime,但是在 CentOS7 以后 localtime 以及变成了一个链接文件

[root@centos7 ~]# ll /etc/localtime 
lrwxrwxrwx 1 root root 33 Oct 12 11:01 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

如果采用直接 cp 的方法修改系统时区,那么就会把它所链接的文件修改掉,例如把美国的时区文件内容修改成了上海的时区内容,有可能会导致有些编程语言或程序在读取系统时区的时候发生错误,因此正确的修改方法是:

注意:请在做任意变更操作前养成备份的习惯。



CentOS6、Ubuntu16

[root@d5a329049b12 /]# cp /etc/localtime /etc/localtime.bak
[root@d5a329049b12 /]#
[root@d5a329049b12 /]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? y
[root@d5a329049b12 /]#



CentOS7、RHEL7、Scientific Linux 7、Oracle Linux 7

最好的方法是使用 timedatectl 命令

[root@d5a329049b12 /]# timedatectl list-timezones |grep Shanghai    # 查找中国时区的完整名称
Asia/Shanghai
[root@d5a329049b12 /]# timedatectl set-timezone Asia/Shanghai # 其他时区以此类推

或者直接手动创建软链接

[root@d5a329049b12 /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

 

修改好时区之后就可以同步时间啦

[root@d5a329049b12 /]# ntpdate -s time.windows.com