date 指令
date 指令
Linux date 命令可以用来显示或设定系统的日期与时间,
显示当前日期
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,比如:
$ date
三 5月 12 14:08:12 CST 2010
$ date '+%c'
2010年05月12日 星期三 14时09分02秒
显示完整的时间
$ date '+%D'
05/12/10
显示数字日期,年份两位数表示
$ date '+%x'
2010年05月12日
显示日期,年份用四位数表示
$ date '+%T'
14:09:31
显示 24 小时的格式
$ date '+%X'
14时09分39秒
具体的标记请查看:Linux date 命令 | 菜鸟教程
当您不希望出现无意义的 0 时 (比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S'
会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04
会变为 8:9:4
。
其实日常使用,直接输入 date
就足够了
$ date '+%Y-%m-%d'
2021-09-09
$ date '+%H-%M-%S'
22-03-29
设置日期
date -s 字符串时间
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss]
,其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
例如
date -s "2020-11-03 20:02:10"
:设置系统当前时间,比如设置成 2020-11-03 20:02:10
另外,只有取得权限者 (比如说 root) 才能设定系统时间。当您以 root 身分更改了系统时间之后,请记得以 clock -w
来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
自动同步网络日期
过程如下:
-
执行
yum install -y ntp
,安装时间同步服务(组件) -
ntpdate asia.pool.ntp.org
,设置同步服务器,asia.pool.ntp.org
是台警大授时中心 (台湾) -
执行
date
,查看当前时间
ntp 常用服务器:
-
中国国家授时中心:210.72.145.44
-
NTP 服务器 (上海) :ntp.api.bz
-
微软公司授时主机 (美国) :time.windows.com
-
台警大授时中心 (台湾):asia.pool.ntp.org
注意,服务器更新时间之后,所有的日志啊什么的,都会自动使用更新后的时间,不需要重新启动。
对于一些时间敏感的应用,一定要先关闭,再修改时间,否则会导致服务出现问题,比如 TDengine。
关于离线时钟同步,请看《离线时钟同步服务》