一、名词
UTC
格林尼治标准时间,位于0时区,东八区需要+8
RTC
硬件时间,也称作BIOS时间
CST
中央标准时间,也指各个时区自己的地方时间
二、查看时间
#查看当前硬件时间
hwclock
#查看当前系统时间
date
date -u # 显示UTC时间
date +%s # 查看时间戳
# 显示多个时间
timedatectlLocal time:本地时间,初始值来自于RTC,由内核维护,系统启动之后和RTC就没有关系,通常等于RTC+时区值(如上图的本地时间=RTC+8)Universal time:系统时间永远是UTC,在应用程序使用的时候转换为本地时间RTC time:指硬件时间,一般是主板上的特殊电路,专用于记录时间,有电池供电,不受服务器和操作系统的开启关闭影响。也称作BIOS时间。需要注意的是:当/etc/sysconfig/clock 文件中 UTC=true时, BIOS 使用UTC时间; UTC=false时, BIOS 使用本地时间hwclock --localtime #显示 BIOS 中实际的时间hwclock -w #将系统时间同步到硬件时间Time zone:本地时区,即服务器所在的时区NTP service:状态为“yes”,表示开启NTP同步NTP synchronized,为“yes”,表示NTP同步完成。RTC in local TZ:设置RTC时间,为"no"表示未设置timedatectl set-local-rtc 1 #将RTC设置为本地时间timedatectl set-local-rtc 0 #将RTC设置为UTC
三、修改时间
#修改当前硬件时间
hwclock --set --date "20230413 10:00:00"
#修改当前系统时间
date -s "20230413 10:00:00"
#系统时间同步硬件时间
hwclock -s
#硬件时间同步系统时间
hwclock -w
#硬件时间设置为系统时间
hwclock --hctosys
四、查看时区
# Linux中的时区主要通过一个文件来表示,这个文件是/etc/localtime,其中包含了Linux系统的时区信息
ls -al /etc/localtime
# 注意这里的/etc/localtime只是一个链接,查看被链接文件所在的目录:
ls /usr/share/zoneinfo/
# 所以为了修改Linux系统的时区,只需要修改/etc/localtime链接的文件就可以了:
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # 链接到东京时间# 命令修改
timedatectl set-timezone "Asia/Shanghai" #设置时区为上海
五、NTP
timedatectl set-ntp true #开启ntp同步timedatectl set-ntp false #禁止ntp同步