zoukankan      html  css  js  c++  java
  • date

     在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,
        以下是我在工作中积累的关于date命令的用法,绝大多数都有解释说明,并配有范例,记录了linux中date命令的各种特定时间的表示方法,如何修改为特定的时间等,相信读者在认真读完并领会接下来的范例之后,一定会对date命令更加熟练,达到举一反三的效果,从而可以任意表示想要表示的时间,也就可以任意调整服务器的时间了,这其中有网上的各中学习资料,也有date自身的man手册,也有很多同事的智慧,也有个人的独立学习,在此也感谢各位前辈的的贡献和各位同事积极的帮助。如果本文中有错误之处,请联系QQ:349871740,欢迎指正^_^

    1、以下是服务器现在的时间,当前时间的各种表示方法,表示成自己想要的时间格式,后面的范例将会在这个时间基础之上进行演示,同时这也是熟练掌握后面各种date命令的前提,请读者注意
    [root@RHEL601 tmp]# date
    2012年 07月 19日 星期四 20:11:16 CST

    读者可以设定特定的格式,格式设定规则:一个加号后接数个标记,每个标记中都有%,其中可用的标记列表和说明如下: 
    %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..59)
    %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)


    按照特定的格式输出时间:短接符"-"、空格" "和冒号":" 为分隔符,其中空格前面加了转义符号""
    [root@RHEL601 tmp]# date +%Y-%m-%d %H:%M:%S
    2012-07-19 21:10:28

    在当前时间的基础上往前推或者往后推三天
    [root@RHEL601 tmp]# date -d "+3 day" 
    2012年 07月 22日 星期日 20:12:08 CST
    [root@RHEL601 tmp]# date -d "-3 day"  
    2012年 07月 16日 星期一 20:12:12 CST

    在当前时间的基础上往前推或者往后推三个月
    [root@RHEL601 tmp]# date -d "-3 month"    
    2012年 04月 19日 星期四 20:12:39 CST
    [root@RHEL601 tmp]# date -d "+3 month"  
    2012年 10月 19日 星期五 20:12:48 CST

    在当前时间的基础上往前推或者往后推三年
    [root@RHEL601 tmp]# date -d "+3 year"      
    2015年 07月 19日 星期日 20:13:06 CST
    [root@RHEL601 tmp]# date -d "-3 year"   
    2009年 07月 19日 星期日 20:13:11 CST

    在当前时间的基础上往前推或者往后推三小时
    [root@RHEL601 tmp]# date -d "-3 hour"     
    2012年 07月 19日 星期四 17:13:20 CST
    [root@RHEL601 tmp]# date -d "+3 hour"  
    2012年 07月 19日 星期四 23:13:24 CST

    在当前时间的基础上往前推或者往后推三分钟
    [root@RHEL601 tmp]# date -d "+3 minute"       
    2012年 07月 19日 星期四 20:16:56 CST
    [root@RHEL601 tmp]# date -d "-3 minute"  
    2012年 07月 19日 星期四 20:10:59 CST

    在当前时间的基础上往前推或者往后推三十秒
    [root@RHEL601 tmp]# date && date -d "-30 second"         
    2012年 07月 19日 星期四 20:14:24 CST
    2012年 07月 19日 星期四 20:13:54 CST
    [root@RHEL601 tmp]# date && date -d "+30 second"  
    2012年 07月 19日 星期四 20:14:29 CST
    2012年 07月 19日 星期四 20:14:59 CST

    2、接下来的范例说明如何用date来表示各种各样的时间,表示的都是某一天的零点时间,也可以在当前的时分秒的基础上表示时间,(特别注意中间用到了反单引号`)参见范例
    date -d `date +%y%m01` #本月第一天
    [root@RHEL601 tmp]# date -d `date +%y%m01`
    2012年 07月 01日 星期日 00:00:00 CST

    date -d `date +%y%m01`"-1 day"  #上个月最后一天
    [root@RHEL601 tmp]# date -d `date +%y%m01`"-1 day"
    2012年 06月 30日 星期六 00:00:00 CST

    date -d `date -d "-3 month" +%y%m01`"-1 day" #4个月前的第一天
    [root@RHEL601 tmp]# date -d `date -d "-3 month" +%y%m01`"-1 day"
    2012年 03月 31日 星期六 00:00:00 CST

    date -d `date -d "+12 month" +%y%m01`"-1 day" #第11个月后的第一天
    [root@RHEL601 tmp]# date -d `date -d "+12 month" +%y%m01`"-1 day"
    2013年 06月 30日 星期日 00:00:00 CST

    date -d `date -d "-1 month" +%y%m01` #上个月第一天
    [root@RHEL601 tmp]# date -d `date -d "-1 month" +%y%m01`
    2012年 06月 01日 星期五 00:00:00 CST


    date -d `date -d "+12 month" +%y%m01` #第12个月后的第一天
    [root@RHEL601 tmp]# date -d `date -d "+12 month" +%y%m01`
    2013年 07月 01日 星期一 00:00:00 CST

    date -d `date -d "-1 day" +%Y%m%d` #前一天零点时间
    [root@RHEL601 tmp]# date -d `date -d "-1 day" +%Y%m%d`
    2012年 07月 18日 星期三 00:00:00 CST

    date -d `date -d "-3 day" +%Y%m%d` #前三天零点时间
    [root@RHEL601 tmp]# date -d `date -d "-3 day" +%Y%m%d` 
    2012年 07月 16日 星期一 00:00:00 CST

    date -d `date -d "+1 day" +%Y%m%d` #明天零点时间
    [root@RHEL601 tmp]# date -d `date -d "+1 day" +%Y%m%d`  
    2012年 07月 20日 星期五 00:00:00 CST

    date -d `date -d "+3 day" +%Y%m%d` #往后推三天零点时间
    [root@RHEL601 tmp]# date -d `date -d "+3 day" +%Y%m%d` 
    2012年 07月 22日 星期日 00:00:00 CST

    3、以下简单示范了字母大小写在date命令中的区别
    Y #代表完整的年份,例如:2012年 将显示 2012
    y #代表缩写年份,例如:2012年 缩写为 12

    [root@RHEL601 tmp]# date +"%y%m01%H%M%S"
    121201121556
    [root@RHEL601 tmp]# date +"%Y%m01%H%M%S"
    20121201121610

    4、以下范例说明如何调整服务器的时间
    ntpdate 210.72.145.44 #将服务器时间调整为正常时间,210.72.145.44 是国家授时中心服务器IP地址
    [root@RHEL601 tmp]# ntpdate 210.72.145.44
    19 Jul 13:07:07 ntpdate[15150]: adjust time server 210.72.145.44 offset -0.020920 sec

    date 121212122012 #将时间设置为2012年 12月 12日 星期三 12:12:00,date后面的数字代表月日时分年,还可以加秒,需要后面跟英文状态下的句号字符".",例如:121212122012.12
    [root@RHEL601 tmp]# date 121212122012
    2012年 12月 12日 星期三 12:12:00 CST
    [root@RHEL601 tmp]# date 121212122012.12
    2012年 12月 12日 星期三 12:12:12 CST

    [root@RHEL601 tmp]# date `date -d "1 day ago" +%m%d%H%M%Y.%S`
    2012年 07月 18日 星期三 20:13:04 CST
    [root@RHEL601 tmp]# date
    2012年 07月 18日 星期三 20:13:10 CST
    [root@RHEL601 tmp]# date `date -d "3 days ago" +%m%d%H%M%Y.%S`
    2012年 07月 15日 星期日 20:13:18 CST
    [root@RHEL601 tmp]# date `date -d "5 days ago" +%m%d%H%M%Y.%S`
    2012年 07月 10日 星期二 20:13:28 CST
    [root@RHEL601 tmp]# date `date -d "$((3600*24)) seconds ago" +%m%d%H%M%Y.%S`
    2012年 07月 09日 星期一 20:13:39 CST
    [root@RHEL601 tmp]# date `date -d "$((3600*24)) seconds ago" +%m%d%H%M%Y.%S`
    2012年 07月 08日 星期日 20:14:01 CST
    [root@RHEL601 tmp]# ntpdate 210.72.145.44
    19 Jul 20:14:15 ntpdate[26846]: step time server 210.72.145.44 offset 950404.037565 sec

         
     
  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/jinbiaof/p/6844211.html
Copyright © 2011-2022 走看看