计算机内部所记录的时钟是记载于BIOS(CMOS)内的,但如果计算机上面的CMOS电池没电了,或者是某些特殊因素导致BIOS数据被清除,此时计算机的时间就会不准。对于处于在网络当中的主机,如何保证主机随时保持正确的时间信息呢?这就需要用到NTP服务器。
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间(GMT)吗?答案是否定的。因为格林尼治时间是以地球自转为基础的时间计量系统,但是地球每天的自转是有些不规则的,因此,格林尼治时间已经不再被作为标准时间使用。
新的标准时间,在计算时间的时候,最准确的是使用原子震荡周期所计算的物理时钟(atomic clock,也称原子钟),这也被定义为标准时间。UTC(Universal Time Coordinated,世界协调时)就是利用这种原子钟所定义出来的时间。
为什么linux的发行版里面定义时区没有北京时间?因为在1949年之前,我国一共分了5个时区,以哈尔滨、上海、重庆、乌鲁木齐和喀什为代表分别是长白时区,中原标准时区,陇蜀时区,新藏时区和昆仑时区。/usr/share/zoneinfo/Asia
Asia/Harbin
Asia/Shanghai
Asia/Chongqing
Asia/Urumqi
Asia/Kashgar
这五个时区的时间现在均为北京时间,即中国标准时间。
北京时间是中国采用国际时区东八时区作为标准时间。北京时间并不是北京的地方时间,而是东经120°的地方时间,所以北京时间=UTC+8。由于中国地域辽阔,东西相跨5个时区(东五区、东六区、东七区、东八区、东九区5个时区),授时台必须建立在地理中心地带,所以授时台不在北京,而在陕西蒲成。
查看当前的时间
[root@localhost ~]# date -R
Fri, 29 Mar 2019 09:41:17 +0800
查看所有时区:
[root@localhost ~]# ls /usr/share/zoneinfo/
查看其他时区的当前时间
[root@web ~]# zdump Hongkong
更改时区:
方法一、
1、使用tzselect命令查询需要的时区,按照提示操作
2、添加变量到~/.bash_profile文件中,即追加类似的内容:
TZ='America/Mexico_City'; export TZ
3、重新连接一个新会话,使用date -R查看