date

date

打印或者设置系统的日期和时间

语法

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

常用选项

-d, --date=STRING 显示字符串所指的日期与时间

    示例:显示2016-09-09
        [root@haiyun ~]# date --date=20160909
        Fri Sep  9 00:00:00 CST 2016
        
        [root@haiyun ~]# date -d '20160909'
        Fri Sep  9 00:00:00 CST 2016
        
        [root@haiyun ~]# date --date '20160909'
        Fri Sep  9 00:00:00 CST 2016

-s, --set=STRING 根据字符串来设置时间
    
    示例:修改时间为2016-09-09
        [root@haiyun ~]# date -s 20160909
        Fri Sep  9 00:00:00 CST 2016
        
        [root@haiyun ~]# date --set 20160909
        Fri Sep  9 00:00:00 CST 2016

-f, --file=DATEFILE 读取文件中的时间并显示出来

    示例:读取文件f1中的时间
        [root@haiyun ~]# cat f1
        20170909
        20160909
        [root@haiyun ~]# date -f f1
        Sat Sep  9 00:00:00 CST 2017
        Fri Sep  9 00:00:00 CST 2016

-r, --reference=FILE 显示指定文件的最后修改时间
    
    示例:读取文件f1的最后修改时间
    
    [root@haiyun ~]# date -r f1
    Fri Sep  9 00:07:18 CST 2016

-R, --rfc-2822 以RFC 2822格式输出日期和时间

-u, --utc, --universal 输出或设置协调通用时间
    PS: 协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。

--help 显示此帮助信息并退出

--version 显示版本信息并退出

FORMAT格式输出:

%%  一个文字的%
%a  当前locale的星期名缩写(例:Mon代表monday星期一)
%A  当前locale的星期名全称(例:monday星期一)
%b  当前locale的月名的缩写(例:Jan代表January一月)
%B  当前locale的月名的全称(例:January一月)
%c  当前locale的日期和时间
    例如:
        [root@haiyun ~]# date +%c
        Fri 09 Sep 2016 01:30:10 AM CST
%C  世纪;比如%Y,通常为省略当前年份的后两位数字
    例如:
        [root@haiyun ~]# date +%Y
        2016
        [root@haiyun ~]# date +%C
        20
%d  按月计的日期
    例如:
        [root@haiyun ~]# date +%d
        09
        [root@haiyun ~]# date 
        Fri Sep  9 01:33:43 CST 2016
%D  按月计得日期;等于%m/%d/%y
    例如:
        [root@haiyun ~]# date +%D
        09/09/16
        [root@haiyun ~]# date +%m/%d/%y
        09/09/16
%e  按月计的日期,添加空格,等于%_d
    例如:
        [root@haiyun ~]# date +%e
         9
        [root@haiyun ~]# date +%_d
         9
%F  完整的日期格式,等于%Y-%m-%d
    例如:
        [root@haiyun ~]# date +%F
        2016-09-09
        [root@haiyun ~]# date +%Y-%m-%d
        2016-09-09
%g  ISO-8601格式年份的最后两位(参见%G)
    例如:
        [root@haiyun ~]# date +%g
        16
    PS:ISO-国际标准化组织
%G  ISO-8601格式年份的最后两位参数,一般之和%V结合使用
    例如:
        [root@haiyun ~]# date +%G
        2016
%h  等于%b
    例如:
        [root@haiyun ~]# date +%h
        Sep
        [root@haiyun ~]# date +%b
        Sep
%H  小时(00-23)
    例如:
        [root@haiyun ~]# date +%H
        01
%I  小时(00-12)
    例如:
        [root@haiyun ~]# date +%I
        01
%j  按年计的日期(001-366)  
    例如:
        [root@haiyun ~]# date +%j
        253
%k  时(00-23)
    例如:
        [root@haiyun ~]# date +%k
         1
%l  时(00-12)
    例如:
        [root@haiyun ~]# date +%l
         1
%m  月(01-12)
    例如:
        [root@haiyun ~]# date +%m
        09
%M  分钟(00-59)
    例如:
        [root@haiyun ~]# date +%M
        01
%n  换行
    例如:
        [root@haiyun ~]# date +%Y%n%m
        2016
        09
%N  纳秒(000000000-999999999)
    例如:
        [root@haiyun ~]# date +%N
        303199351
%p  当前locale 下的"AM"或者"PM",未知时输出为空
    例如:
        [root@haiyun ~]# date +%p
        AM
%P  与%p 类似,但是输出小写字母
    例如:
        [root@haiyun ~]# date +%P
        am
%r  当前locale 下的 12 小时时钟时间
    例如:
        [root@haiyun ~]# date +%r
        02:10:02 AM
%R  24 小时时间的时和分,等价于 %H:%M
    例如:
        [root@haiyun ~]# date +%R
        02:11
        [root@haiyun ~]# date +%H:%M
        02:11
%s  自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
    例如:
        [root@haiyun ~]# date +%s
        1473358359
%S  秒(00-60)
    例如:
        [root@haiyun ~]# date +%S
        59
%t  输出制表符 Tab
    例如:
        [root@haiyun ~]# date +%Y%t%m
        2016    09
%T   时间,等于%H:%M:%S
    例如:
        [root@haiyun ~]# date +%T
        02:16:41
        [root@haiyun ~]# date +%H:%M:%S
        02:16:42
%u  星期,1 代表星期一
    例如:
        [root@haiyun ~]# date +%u
        5
%U  一年中的第几周,以周日为每星期第一天(00-53)
    例如:
        [root@haiyun ~]# date +%U
        36
%V   ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
    例如:
        [root@haiyun ~]# date +%V
        36
%w  一星期中的第几日(0-6),0 代表周一
    例如:
        [root@haiyun ~]# date +%w
        5
%W  一年中的第几周,以周一为每星期第一天(00-53)
    例如:
        [root@haiyun ~]# date +%W
        36
%x  当前locale 下的日期描述
    例如:
        [root@haiyun ~]# date +%x
        09/09/2016
%X  当前locale 下的时间描述
    例如:
        [root@haiyun ~]# date +%X
        02:27:46 AM
%y  年份最后两位数位 (00-99)
    例如:
        [root@haiyun ~]# date +%y
        16
%Y  年份
    例如:
        [root@haiyun ~]# date +%Y
        2016
%z +hhmm    数字时区(例如,-0400)

%:z +hh:mm  数字时区(例如,-04:00)
    
%::z +hh:mm:ss  数字时区(例如,-04:00:00)

%:::z    数字时区带有必要的精度 (例如,-04,+05:30)

%Z  按字母表排序的时区缩写 (例如,EDT)

PS:默认情况下,日期的数字区域以0 填充。
以下可选标记可以跟在"%"后:
  - (连字符)不填充该域
  _ (下划线)以空格填充
  0 (数字0)以0 填充
  ^ 如果可能,使用大写字母
  # 如果可能,使用相反的大小写

时间输出

date是Linux系统里自带的一个系统命令,用来显示当前的系统时间,不过默认显示的结果里包括很多信息,特别是做为文件名输出时,不是很方便好在date命令里包含格式化输出的选项

[root@haiyun ~]# date +%Y-%m-%d
2016-09-09
[root@haiyun ~]# date +%H:%M:%S
02:39:27
[root@haiyun ~]# date "+%Y-%m-%d %H:%M:%S"
2016-09-09 02:40:24
[root@haiyun ~]# date -d today
Fri Sep  9 02:40:42 CST 2016
[root@haiyun ~]# date -d now
Fri Sep  9 02:40:47 CST 2016
[root@haiyun ~]# date -d tomorrow
Sat Sep 10 02:41:01 CST 2016
[root@haiyun ~]# date -d yesterday
Thu Sep  8 02:41:12 CST 2016

时间设置

    我们一般使用“date -s”命令来修改系统时间
比如将系统时间设定成2011年7月13日的命令:date -s 07/13/2011
将系统时间设定成11点12分0秒的命令:date -s 11:12:00
 设置时间为2017-07-07 11:11:11的命令:date -s '2017-07-07 11:11:11'
注意:这里说的是系统时间,是linux由操作系统维护的。
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
如果要确保修改生效可以执行如下命令。
#clock –w
这个命令强制把系统时间写入CMOS。

你可能感兴趣的:(date)