原文

1、命令:date

2、命令功能:date 可以用来显示或设定系统的日期与时间。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

3、命令参数

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; 
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; 
-u:显示GMT; 
--help:在线帮助; 
--version:显示版本信息。

4、日期格式字符串列表

%H 小时(以00-23来表示)。 
%I 小时(以01-12来表示)。 
%K 小时(以0-23来表示)。 
%l 小时(以0-12来表示)。 
%M 分钟(以00-59来表示)。 
%P AM或PM。 
%r 时间(含时分秒,小时以12小时AM/PM来表示)。 
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 
%S 秒(以本地的惯用法来表示)。 
%T 时间(含时分秒,小时以24小时制来表示)。 
%X 时间(以本地的惯用法来表示)。 
%Z 市区。 
%a 星期的缩写。 
%A 星期的完整名称。 
%b 月份英文名的缩写。 
%B 月份的完整英文名称。 
%c 日期与时间。只输入date指令也会显示同样的结果。 
%d 日期(以01-31来表示)。 
%D 日期(含年月日)。 
%j 该年中的第几天。 
%m 月份(以01-12来表示)。 
%U 该年中的周数。 
%w 该周的天数,0代表周日,1代表周一,异词类推。 
%x 日期(以本地的惯用法来表示)。 
%y 年份(以00-99来表示)。 
%Y 年份(以四位数来表示)。 
%n 在显示时,插入新的一行。 
%t 在显示时,插入tab。 
MM 月份(必要) 
DD 日期(必要) 
hh 小时(必要) 
mm 分钟(必要)
ss 秒(选择性) 

5、实例

格式化输出:、

date +"%Y-%m-%d" 
2015-12-07

输出昨天日期:

date -d "1 day ago" +"%Y-%m-%d"
2015-11-19

2秒后输出:

date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2015-11-20 14:21.31

传说中的 1234567890 秒

date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30

普通转格式:

date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00

apache格式转换:

date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

格式转换后时间:

date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37

加减操作:

date +%Y%m%d               #显示前天年月日 
date -d "+1 day" +%Y%m%d   #显示前一天的日期 
date -d "-1 day" +%Y%m%d   #显示后一天的日期 
date -d "-1 month" +%Y%m%d #显示上一月的日期 
date -d "+1 month" +%Y%m%d #显示下一月的日期 
date -d "-1 year" +%Y%m%d  #显示前一年的日期 
date -d "+1 year" +%Y%m%d  #显示下一年的日期

设定时间:

date -s          #设置当前时间,只有root权限才能设置,其他只能查看 
date -s 20120523 #设置成20120523,这样会把具体时间设置成空00:00:00 
date -s 01:01:01 #设置具体时间,不会对日期做更改 
date -s "01:01:01 2012-05-23" #这样可以设置全部时间 
date -s "01:01:01 20120523"   #这样可以设置全部时间 
date -s "2012-05-23 01:01:01" #这样可以设置全部时间 
date -s "20120523 01:01:01"   #这样可以设置全部时间

检查一组命令花费的时间:

 

#!/bin/bash 
start=$(date +%s) 
nmap man.linuxde.net &> /dev/null 
end=$(date +%s) 
difference=$(( end - start )) 
echo $difference seconds.

 

Linux date命令详解

1、显示时间

date命令可以按照指定格式显示日期,只键入date则以默认格式显示当前时间。如下:

date命令,Linux date命令详解 随笔 第1张

如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式,详细格式如下:

%n : 下一行
%t : 跳格
%H : 小时(00-23)
%I : 小时(01-12)
%k : 小时(0-23)
%l : 小时(1-12)
%M : 分钟(00-59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
%a : 星期几 (Sun-Sat)
%A : 星期几 (Sunday-Saturday)
%b : 月份 (Jan-Dec)
%B : 月份 (January-December)
%c : 直接显示日期与时间
%d : 日 (01-31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001-366)
%m : 月份 (01-12)
%U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0-6)
%W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000-9999)

上述格式不必全都记住,只需要掌握几个常用的即可。例如%Y表示年,%m表示月,%d表示日,%H表示小时,%M表示分钟,%S表示秒,%s表示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数,相当于time函数,%w表示一周中的第几天。

实例见下:

date命令,Linux date命令详解 随笔 第2张

如果要显示的时间不是当前时间,而是经过运算的时间,则可以用-d选项。例如显示三年前的时间:

date命令,Linux date命令详解 随笔 第3张

看到这个命令我很受伤,过去的时间再也回不去了,只能用命令看看。显示三个月后的时间:

date命令,Linux date命令详解 随笔 第4张

显示十天后的时间:

date命令,Linux date命令详解 随笔 第5张

有时候需要获取当前时间距离1970年0时0分0秒所经历的秒数,保存在变量中:

date命令,Linux date命令详解 随笔 第6张

 

2、设置时间

用 -s选项可以设置系统时间:

date命令,Linux date命令详解 随笔 第7张

方式多种多样,任你选:

date命令,Linux date命令详解 随笔 第8张

你要足够相信date的智能。

date命令,Linux date命令详解 随笔 第9张

date命令,Linux date命令详解 随笔 第10张

date命令,Linux date命令详解 随笔 第11张

date命令,Linux date命令详解 随笔 第12张

date命令,Linux date命令详解 随笔 第13张

date命令,Linux date命令详解 随笔 第14张

date命令,Linux date命令详解 随笔 第15张

date命令,Linux date命令详解 随笔 第16张

 date命令,Linux date命令详解 随笔 第17张

date命令,Linux date命令详解 随笔 第18张

date命令,Linux date命令详解 随笔 第19张

date命令,Linux date命令详解 随笔 第20张

date命令,Linux date命令详解 随笔 第21张

date命令,Linux date命令详解 随笔 第22张

date命令,Linux date命令详解 随笔 第23张

date命令,Linux date命令详解 随笔 第24张

date命令,Linux date命令详解 随笔 第25张

date命令,Linux date命令详解 随笔 第26张

date命令,Linux date命令详解 随笔 第27张

date命令,Linux date命令详解 随笔 第28张

date命令,Linux date命令详解 随笔 第29张

date命令,Linux date命令详解 随笔 第30张

 date命令,Linux date命令详解 随笔 第31张

date命令,Linux date命令详解 随笔 第32张

date命令,Linux date命令详解 随笔 第33张

date命令,Linux date命令详解 随笔 第34张

date命令,Linux date命令详解 随笔 第35张

date命令,Linux date命令详解 随笔 第36张

date命令,Linux date命令详解 随笔 第37张

date命令,Linux date命令详解 随笔 第38张

date命令,Linux date命令详解 随笔 第39张

date命令,Linux date命令详解 随笔 第40张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄