date

以给定的格式显示当前的日期,或者设置系统时间。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

date [选项]。

date [+格式]。

date -u  [参数]

参数格式[MMDDhhmm[[CC]YY][.ss]],分别对应(月、日、时、分、年前两位、年后两位、秒)

 

2、选项和格式列表

选项

说明

--help

帮助信息

--version

显示命令版本信息

-f | --file=DATEFILE

和“--date”一样,文件的每一行都设置一次

-d | --date=STRING

显示字符串代表的时间,注意不是当前时间

-r | --reference=FILE

显示文件的最后修改时间

-R | --frc-2822

以rfc-2822的方式输出日期和时间,

--rfc-3339=TIMESPEC

以rfc-3339的方式输出日期和时间,精度可以是date、seconds、ns,日期和时间用一个空格隔开

-s |  --set=STRING

用指定字符串设置时间

-u |  --utc, --universal

输出或者设置通用时间

 

格式

说明

%a

当前locale 的星期名缩写(例如: 日,代表星期日)

%A

当前locale 的星期名全称 (如:星期日

%b

当前locale 的月名缩写 (如:一,代表一月)

%B

当前locale 的月名全称 (如:一月)

%c

当前locale 的日期和时间 (如:2005年3月3日 星期四23:05:25)

%C

世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)

%d

按月计的日期(例如:01)

%D

按月计的日期;等于%m/%d/%y

%e

按月计的日期,添加空格,等于%_d

%F

完整日期格式,等价于 %Y-%m-%d

%g

ISO周数年的最后两位数

%G

ISO周数年份

%H

小时(00-23)

%I

小时(00-12)

%j

按年计的日期(001-366)

%k

小时,00~23

%l

小时,1~12

%m

月份(01-12)

%M

分(00-59)

%n

新的一行

%N

十亿分之一秒

%p

当前locale 下的”上午”或者”下午”,未知时输出为空

%P

和“%p”一样,但是输出小写字母

%r

当前locale 下的 12 小时时钟时间(如:11:11:04 下午)

%R

24 小时时间的时和分,等价于%H:%M

%s

从1970-01-01 00:00:00开始的秒数

%S

秒(00-60)

%t

tab字符

%T

时间,等于%H:%M:%S

%u

一个星期的一天,1是星期一。(1~7)

%U

一年中的第几周,以周日为每星期第一天(00-53)

%V

ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)

%w

一个星期的一天,0是周日. (0~6)

%W


%x

当前locale 下的日期描述(如:12/31/99)

%X

当前locale 下的时间描述(如:23:13:48)

%y

年份最后两位数位(00-99)

%Y

%z

+hhmm格式的数字时区,例如“-0400

%:z

+hh:mm格式的数字时区,例如“-04:00

%::z

+hh:mm:ss格式的数字时区,例如“-04:00:00 “

%:::z

数字时区,使用“:”达到必要的精度,例如“-04, +05:30“

%Z

时区的缩写,例如EDT

 

3、说明

     默认情况下,使用数字0来填补数字时间中的空缺。当然也可以指定其他方式:“%-“,不填补;”%_“,使用空格填补;”%0“,使用0;”%^“使用大写字母;”%#“,使用相反的字母

“--date=String“是一种自由格式,是一种方便读取的日期字符串,例如“Sun,2月29日16:21:42-0800”或“2004-02-29 16:21:42:42”,甚至是“下星期四”。日期字符串可能包含指示日历日期、时间、时区、周中日、相对时间、相对日期和数字的项。空字符串表示一天的开始。日期字符串可以包含指示日历日期、时间、时区、星期数、相对时间、相对日期和数字的项。日期字符串格式比这里容易记录的要复杂,但是在info文档中有完整的描述。

 

4、实例

1)不适用任何参数,直接显示日期和时间

[root@localhost ~]# date

2018 09 05星期三 11:48:58 CST     //注意,这里显示的是CST时间

2)显示UTC时间

[root@localhost ~]# date -u

2018 09 05星期三 03:51:53 UTC

3)设置CST日期时间

[root@localhost ~]# date -s 2018-9-4   //这里可以看到支持的日期格式。如果没有设置时间,那么默认就是00

2018 09 04星期二 00:00:00 CST

[root@localhost ~]# date -s 20180905

2018 09 05星期三 00:00:00 CST

[root@localhost ~]# date -s 2018/9/6

2018 09 06星期四 00:00:00 CST

[root@localhost ~]# date -s 11:56     //修改时间

2018 09 05星期三 11:56:00 CST

[root@localhost ~]# date -s 11:54:40

2018 09 05星期三 11:54:40 CST

4)显示当前是一年中的第几周,第几天 

[root@localhost ~]# date +%U周第%j

35周第248

5)显示12小时制度下的时间 

[root@localhost ~]# date +%r

下午 120248

[root@localhost ~]# date +%p%H:%M:%S     //这里可以使用多个格式组合,达到上面的效果

下午12:03:24

6)显示当前日期 

[root@localhost ~]# date +%x

20180905

[root@localhost ~]# date +%F

2018-09-05

[root@localhost ~]# date +%Y-%m-%d    //多格式拼接

2018-09-05