date命令

时间:2024-04-17 19:41:46

命令简介

date命令显示或设置系统日期和时间

命令语法

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

命令选项

-d STRING : 显示字符串所指的日期与时间
-s STRING : 根据字符串来设置日期与时间
-f DATAFILE : 显示DATEFILE文件中的每行时间
-r FILE : 显示文件的最后修改时间
-u : 显示或设定为UTC时间格式

时间输出FORMAT

%% 显示字符%
%a 星期的缩写(例如Sun)
%A 星期的完整名称(例如Sunday)
%b 月份英文名的缩写(例如Jun)
%B 月份的完整英文名称(例如January)
%c 日期与时间。只输入date指令也会显示同样的结果
%C 世纪(年份除100后去整,00-99)
%d 日期(以01-31来表示)
%D 日期(含年月日)
%e 一个月的第几天 ( 1-31)
%F 日期,同%Y-%m-%d
%g 两位年份(YY)
%G 四位年份(CCYY)
%h 同%b
%H 小时(以00-23来表示)
%I 小时(以01-12来表示)
%j 该年中的第几天(001-366)
%k 24小时制(0-23)
%l 12小时制(0-12)
%m 月份(01-12)
%M 分钟(00-59)
%n 换行
%N 纳秒(000000000-999999999)
%p AM或PM
%P am或pm
%r 12小时制时间(hh:mm:ss [AP]M)
%R 24小时制时间(hh:mm)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC
%S 秒(以本地的惯用法来表示)
%t 制表符
%T 时间,同%H:%M:%S
%u 一周的第几天(1-7),1 表示星期一
%U 一年的第几周,周日为每周的第一天(00-53)
%V 一年的第几周,周一为每周的第一天 (01-53)
%w 一周的第几天 (0-6),0 代表周日
%W 一年的第几周,周一为每周的第一天(00-53)
%x 日期(mm/dd/yy)
%X 时间(%H:%M:%S)
%y 年份(以00-99来表示)
%Y 年份(以四位数来表示)
%z 数字格式时区(例如+0800)
%Z 时区(例如CST)

示例

1.格式化输出时间

[root@localhost ~]# date +"%F %T"
2018-07-21 10:29:09

生产场景中可用于生成日志等

[root@localhost ~]# touch `date +%F`.log
[root@localhost ~]# ls *.log
2018-07-21.log

2.设置时间

[root@localhost ~]# date 083112302018.45
Fri Aug 31 12:30:45 CST 2018

3.使用字符串显示时间(-d选项)

(1)显示昨天的时间

[root@localhost ~]# date -d yesterday
Fri Jul 20 10:37:10 CST 2018
[root@localhost ~]# date -d "-1 day" +"%F %T"
2018-07-20 10:37:13

(2)显示明天的时间

[root@localhost ~]# date -d tomorrow
Sun Jul 22 10:46:29 CST 2018
[root@localhost ~]# date -d "+1 day" +"%F %T"
2018-07-22 10:46:32

同理可用month和year等

(3)显示时间的总秒数

[root@localhost ~]# date -d "2008-08-08 20:00:00" +%s
1218196800

(4)已知总秒数显示时间

[root@localhost ~]# date -d @1218196800 +"%F %T"
2008-08-08 20:00:00

4.使用字符串设定时间(-s选项)

(1)设置时间为1年前时间

[root@localhost ~]# date -s "-1 year" +"%F %T"
2017-07-21 13:36:14

(2)设置时间位1年后时间

[root@localhost ~]# date -s "+1 year" +"%F %T"
2019-07-21 13:38:09

同理可用day,month等

5.显示文件中的时间

[root@localhost ~]# cat f1.txt 
Sun Jul 21 13:45:12 CST 2019
Sun Jul 28 13:45:14 CST 2019

[root@localhost ~]# date -f f1.txt +"%F %T"
2019-07-21 13:45:12
2019-07-28 13:45:14

6.显示文件的最后修改时间

[root@localhost ~]# date -r /etc/issue +"%F %T"
2018-06-26 22:52:40