在Linux中有硬件时钟与系统时钟两种时钟。
硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。
因此,需要在设置系统时间后,将系统时间同步到硬件时钟。
以默认格式输出系统当前的日期与时间信息:
[root@localhost /]# date
Thu Aug 18 09:59:06 CST 2022
按照“年-月-日”的指定格式输出系统当前的日期信息:
[root@localhost /]# date "+%Y-%m-%d"
2022-08-18
设置当前系统为指定的日期和时间:
tips:时间要用双引号括起来,否则报错,手动修改会存在一定的时间误差
[root@localhost /]# date -s "20220818 10:02:30";
Thu Aug 1