date 指令

警告
本文最后更新于 2023-10-22,文中内容可能已过时。

date 指令

Linux date 命令可以用来显示或设定系统的日期与时间,

显示当前日期

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,比如:

1
2
$ date
三 5月 12 14:08:12 CST 2010
1
2
$ date '+%c'
2010年05月12日 星期三 14时09分02秒

显示完整的时间

1
2
$ date '+%D'
05/12/10

显示数字日期,年份两位数表示

1
2
$ date '+%x'
2010年05月12日

显示日期,年份用四位数表示

1
2
$ date '+%T'
14:09:31

显示 24 小时的格式

1
2
$ date '+%X'
14时09分39秒

具体的标记请查看:Linux date 命令 | 菜鸟教程

当您不希望出现无意义的 0 时 (比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4


其实日常使用,直接输入date就足够了

1
2
$ date '+%Y-%m-%d'
2021-09-09
1
2
$ date '+%H-%M-%S'
22-03-29

设置日期

1
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 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

自动同步网络日期

过程如下:

  1. 执行yum install -y ntp,安装时间同步服务(组件)

  2. ntpdate asia.pool.ntp.org,设置同步服务器,asia.pool.ntp.org是台警大授时中心 (台湾)

  3. 执行date,查看当前时间

ntp 常用服务器:

  • 中国国家授时中心:210.72.145.44

  • NTP 服务器 (上海) :ntp.api.bz

  • 美国:time.nist.gov

  • 复旦:ntp.fudan.edu.cn

  • 微软公司授时主机 (美国) :time.windows.com

  • 台警大授时中心 (台湾):asia.pool.ntp.org

注意,服务器更新时间之后,所有的日志啊什么的,都会自动使用更新后的时间,不需要重新启动。

对于一些时间敏感的应用,一定要先关闭,再修改时间,否则会导致服务出现问题,比如 TDengine。

关于离线时钟同步,请看《离线时钟同步服务》

0%