时间和时区

时间是一个瞬间的概念,体现在计算机中可以理解成UNIX时间戳,目前精确的时间源是参考原子钟的震荡频率,然后进行全球同步。常用ntp来进行时间的同步。

由于地球旋转导致不同地域的人看到的日出日落的时间不同,根据地球的地理位置,人为将地球划分成24个不同的时区

计算机中经常看到的是UTC时间标准(UTC: Coordinated Universal Time),他是0时时区标准。中国时区(CST: Chinese Standard Time)相对于0时时区是东八区

例如某一时刻

  • Unix时间戳:
[root@VM_11_7_centos ~]# date +%s    
1496217462   
  • UTC时区时间:
[root@VM_11_7_centos ~]# date -u   
Wed May 31 07:57:42 UTC 2017    
  • CST时区时间:
[root@VM_11_7_centos ~]# date      
Wed May 31 15:57:42 CST 2017      

设置系统时区

在Linux下glibc提供了我们事先编译好的许多timezone文件, 他们就放在/usr/share/zoneinfo这个目录下,这里基本涵盖了大部分的国家和城市

Unix时间戳根据时区转换成不同时区的时间

查看对于每个time zone当前的时间我们可以用zdump命令

zdump Hongkong

配置系统时区

  • 1.修改时区文件/etc/localtime,将/usr/share/zoneinfo中的文件复制为该文件,或者localtime文件链接到zoneinfo中的某个文件

  • 2.修改TZ环境变量

tzselect

当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone. 所以你想永久修改time zone的话那么可以把TZ变量的设置写入/etc/profile