一、名词
- UTC
- 格林尼治标准时间,位于0时区,东八区需要+8
- RTC
- 硬件时间,也称作BIOS时间
- CST
- 中央标准时间,也指各个时区自己的地方时间
二、查看时间
- #查看当前硬件时间
- hwclock
- #查看当前系统时间
- date
- date -u # 显示UTC时间
- date +%s # 查看时间戳
- # 显示多个时间
- timedatectl
- Local 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同步