GMT (Greewich Mean Time)
格林威治标准时间:GMT是老的时间计量标准,根据地球的自转和公转来计算时间,也就是太阳每天经过位于英国伦敦郊区的皇家格林尼治天文台的标准时间就是中午12点,因为本初子午线被定义在通过哪里的经线,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间
UTC (Universal time coordinated)
世界协调时间:现在用的时间标准,根据原子钟来计算时间。由于现在世界上最精确的原子钟50忆年才会误差1秒,而GMT是根据地球的转动来计算时间的,由于地球在它的椭圆轨道里的运动速度不均匀,格林泥治标准时间会与实际的太阳时有误差,最大误差达到16分钟,所以UTC更加精确
CST (China Standard Time )
中国标准时间:比世界协调时间早8小时
CST也同时代表其它三个时区
美国中部时间:Central Standard Time (USA) UTC-6:00
澳大利亚中部时间:Central Standard Time (Australia) UTC+9:30
古巴标准时间:Cuba Standard Time UTC-4:00
CET (Central European Time)
欧洲中部时间:是比世界标准时间(UTC)早一个小时的时区名称之一。它被大部分欧洲国家和部分北非国家采用
WET (Westerm European Time)
欧洲西部时间: 和世界标准时间(UTC)相同
EET (Easterm European Time)
欧洲东部时间: 是比世界标准时间(UTC)早两个小时的时区名称之一。它被部分欧洲国家、北约国家和中东国家采用
Linux系统时钟有两个,一个是硬件时钟,即BIOS时间,另一个是系统时钟,即linux系统Kernel时间。当linux启动时,系统kernel回去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。
date命令查看、设置系统时间
#date -s 10/16/16 将日期设置为2016年10月16号
#date -s 19:29:44 将时间设置为19点29分44秒
#date 1016192916.44 将日期时间设置为2016年10月16号19点29分44秒(MMDDhhmmYYYY.ss)
hwclock命令查看、设置硬件时间
#hwclock --set --date="06/18/14 14:55 " (月/日年 时:分:秒)
硬件时钟与系统时钟同步:
#hwclock --hctosys hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟
#hwclock --systohc 即用系统时钟同步硬件时钟 等于hwclock -w 执行这个命令没有任何反馈信息
修改时区
# cat /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=true
# rm -f /etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime linux是依据/etc/localtime文件内容知道目前系统的时区信息,这个文件一般是从/usr/share/zoneinfo/面选择适当的时区复制过来就可以使用
重启机器后就可以看到时区更改
通过tzselect命令来修改时区
执行tzselect命令 --> 选择Asia --> 选择China --> 选择Beijing --- 选择yes ,执行完tzselect命令选择时区后,时区并没有更改,只是在命令最后提示你可以执行TZ=‘Asia/Shanghai’ ; export TZ 最终将这行命令添加到/etc/profile文件中去,然后退出并重新登陆
时间自动同步:
#crontab -e 定时计划任务,每隔一段时间进行一次同步
10 5 * * * root ntpdate us.pool.ntp.org ; hwclock -w
总结:
调用/sbin/hwclock显示的就是BIOS中的时间莫?未必,这要看/etc/sysconfig/clock中是否启用了UTC,如果启用了UTC(UTC=true),显示的其实是经过时区换算的时间而不是BIOS中真正的时间,如果加上--localtime选项,则得到的总是BIOS中实际的时间。
在/etc/sysconfig/clock中UTC=false时,date、hwclock、hwclock --localtime输出的时间应该一致
在/etc/sysconfig/clock中UTC=true时,date、hwclock的输出是一致的,hwclock --localtime的输出则是UTC时间
系统关闭时会同步系统时间到硬件时钟,系统启动时会从硬件时钟读取时间更新到系统,这2个步骤要根据/etc/sysconfig/clock文件中UTC参数来设置时区转换。