date命令
命令简介
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