系统时钟默认为 UTC 时间,也就是默认为 0时区。
一、查看系统时区。
ms@ms:~# date -R
Wed, 09 Dec 2020 13:52:05 +0000
ms@ms:~#
”+0000“表示为0时区。
二、用系统环境变量 TZ 来设置时区(TZ=CST+/-hhmm 或 hh:mm)。
环境变量TZ和TZDIR:
1、TZ:如果设置了此变量,则其值优先于系统配置的时区。
比如东8区设置:
1、export TZ=CST-8。
2、export TZ=CST-0800。
3、export TZ=CST-8:00。
ms@ms:~# date -R
Wed, 09 Dec 2020 13:52:05 +0000
ms@ms:~# echo $TZ
UTC
ms@ms:~# export TZ=CTS-8
ms@ms:~# date
Wed Dec 9 21:53:23 CTS 2020
ms@ms:~# echo $TZ
CTS-8
ms@ms:~# date -R
Wed, 09 Dec 2020 22:02:08 +0800
ms@ms:~#
三、替换夏令时的时区文件。
ms@ubuntu:~$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: '/usr/share/zoneinfo/Asia/Shanghai' and '/etc/localtime' are the same file
ms@ubuntu:~$
四、使用hwclock命令指定utc。
hwclock -u -s #恢复linux系统时间为时钟芯片内部保存的时间
hwclock -u -w #把系统时间存入时钟芯片
hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<日期与时间>]
参数:
--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug 显示hwclock执行时详细的信息。
--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--set --date=<日期与时间> 设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test 仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version 显示版本信息。
注意:
一、使用环境变量TZ时。
1、hwclock写入、更新到系统时,须指定utc,即加上-u参数。
2、由于环境变量TZ加入到profile文件中,开机自启程序无法获取到此环境变量。
二、使用localtime时区文件时。
1、占用约1k左右的空间,hwclock写入、更新到系统时,无须指定utc,即不能加上-u参数。加上会相关8个时区的时间差。
2、开机自启程序可通过localtime函数获取到当前时区的时间。
因篇幅问题不能全部显示,请点此查看更多更全内容