date

作者: houhy | 来源:发表于2017-07-13 17:38 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/nbqghxtx.html