date命令
date命令是显示或设置系统时间和日期
很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在unix类操作系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起逝去的秒数。
语法
date (选项)(参数)
选项
不加参数:按照系统固定的格式显示当前的系统时间。
root@aad1c1a83775:/# date
Mon Nov 27 15:11:31 CST 2017
root@aad1c1a83775:/#
-d “字符串”或–date=string:显示字符串所指的日期与时间。而非当前时间
root@aad1c1a83775:/# date -d "2017-11-27"
Mon Nov 27 00:00:00 CST 2017
root@aad1c1a83775:/#
-s “字符串”或 –set=string:根据字符串来设置日期与时间,需要获取权限才可以。
root@aad1c1a83775:/# date -s "2017-11-28"
date: cannot set date: Operation not permitted
Tue Nov 28 00:00:00 CST 2017
root@aad1c1a83775:/#
-u:显示GMT
root@aad1c1a83775:/# date
Mon Nov 27 15:25:17 CST 2017
root@aad1c1a83775:/# date -u
Mon Nov 27 07:27:56 UTC 2017
root@aad1c1a83775:/#
参数
“+时间日期格式”:指定显示时使用的日期时间格式
日期时间字符串列表
%a:星期的简称
root@aad1c1a83775:/# date "+%Y-%m-%d -%a"
2017-11-27 -Mon
root@aad1c1a83775:/#
%A:星期的全称
root@aad1c1a83775:/# date "+%Y-%m-%d -%A"
2017-11-27 -Monday
root@aad1c1a83775:/#
-b:月的简称
root@aad1c1a83775:/# date "+%Y-%m-%d -%b"
2017-11-27 -Nov
root@aad1c1a83775:/#
-B:月的全称
root@aad1c1a83775:/# date "+%Y-%m-%d -%B"
2017-11-27 -November
root@aad1c1a83775:/#
-c:显示日期和时间
root@aad1c1a83775:/# date "+%c"
Mon Nov 27 15:40:37 2017
root@aad1c1a83775:/#
%C或%y:年的高两位
root@aad1c1a83775:/# date "+%C"
20
root@aad1c1a83775:/#
%d:日
root@aad1c1a83775:/# date "+%d"
27
root@aad1c1a83775:/#
%D:日期 same as %m/%d/%y
root@aad1c1a83775:/# date "+%D"
11/27/17
root@aad1c1a83775:/#
%e:和%d一致
root@aad1c1a83775:/# date "+%e"
27
root@aad1c1a83775:/#
%F:日期,和%Y-%m-%d一致
root@aad1c1a83775:/# date "+%F"
2017-11-27
root@aad1c1a83775:/#
%h:和%b一样
root@aad1c1a83775:/# date "+%h"
Nov
root@aad1c1a83775:/#
%H:小时,24小时制(00~23)
root@aad1c1a83775:/# date "+%H"
15
root@aad1c1a83775:/#
root@aad1c1a83775:/# date
Mon Nov 27 15:49:07 CST 2017
root@aad1c1a83775:/#
%I:小时,12小时制(01~12)
root@aad1c1a83775:/# date "+%I"
03
root@aad1c1a83775:/#
%j:年的第几天(001~366)
root@aad1c1a83775:/# date "+%j"
331
root@aad1c1a83775:/#
%k:小时,24小时制(0~23)
root@aad1c1a83775:/# date "+%k"
15
root@aad1c1a83775:/#
%l:小时,12小时制(1~12)
root@aad1c1a83775:/# date "+%l"
3
root@aad1c1a83775:/#
%m:月(01~12)
root@aad1c1a83775:/# date "+%m"
11
root@aad1c1a83775:/#
%M:分钟数,(00~59)
root@aad1c1a83775:/# date
Mon Nov 27 15:55:01 CST 2017
root@aad1c1a83775:/# date "+%M"
55
root@aad1c1a83775:/#
%n:新加一行
root@aad1c1a83775:/# date "+%M"
55
root@aad1c1a83775:/# date "+%n%M"
55
root@aad1c1a83775:/#
%N:当前秒的纳秒数
root@aad1c1a83775:/# date "+%n%N"
609603287
root@aad1c1a83775:/# date "+%n%N"
502494837
root@aad1c1a83775:/#
%p:显示是AM还是PM
root@aad1c1a83775:/# date "+%p"
PM
root@aad1c1a83775:/#
%P:以小写的方式显示是am还是pm
root@aad1c1a83775:/# date "+%P"
pm
root@aad1c1a83775:/#
%r:小时以12进制显示时间
root@aad1c1a83775:/# date "+%r"
04:00:21 PM
root@aad1c1a83775:/#
%R:小时以24显示当前小时和分钟,和%H:%M一致
root@aad1c1a83775:/# date "+%R"
16:02
root@aad1c1a83775:/#
%s:从1970-01-01 00:00:00 UTC到当前的秒数
root@aad1c1a83775:/# date "+%s"
1511769785
root@aad1c1a83775:/#
%S:秒,(00~59) 命令注释是(00~60)有误
root@aad1c1a83775:/# date "+%S"
59
root@aad1c1a83775:/# date "+%S"
00
root@aad1c1a83775:/# date "+%S"
%t:增加一个tab键
root@aad1c1a83775:/# date "+%S"
54
root@aad1c1a83775:/# date "+%t%S"
57
root@aad1c1a83775:/#
%T:时间,和%H:%M:%S一致
root@aad1c1a83775:/# date "+%T"
16:05:43
root@aad1c1a83775:/#
%u:以数字的形式显示星期(1~7)
root@aad1c1a83775:/# date "+%u"
1
root@aad1c1a83775:/# date "+%a"
Mon
root@aad1c1a83775:/#
%U:日期对应的星期是当年的第几个星期(00~53)
root@aad1c1a83775:/# date "+%U"
48
root@aad1c1a83775:/#
%w:以数字的形式显示星期(0~6)
root@aad1c1a83775:/# date "+%w"
1
root@aad1c1a83775:/#
%x:当前的日期
root@aad1c1a83775:/# date "+%x"
11/27/17
root@aad1c1a83775:/#
%X:当前的时间
root@aad1c1a83775:/# date "+%X"
16:11:34
root@aad1c1a83775:/#
``
**%Z:显示当前的时区**
root@aad1c1a83775:/# date “+%Z”
CST
root@aad1c1a83775:/#
“`
`