zoukankan      html  css  js  c++  java
  • linux date用法

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

    参考页面:1、http://www.cnblogs.com/xd502djj/archive/2010/12/29/1919478.html
    写在最后,由于博客的编辑功能限制,某些字符显示在页面上不是很明显,特意将个人的本地同名总结文档上传上来,如果读者看着页面中的不习惯,可以下载附件阅读。

  • 相关阅读:
    多线程之线程同步中的锁定lock、Monitor(转)
    信号同步
    窗体间传值的最佳方式
    Semaphore的理解
    推荐算法相关
    基于Spark的GBDT + LR模型实现
    基于Spark和Tensorflow构建DCN模型进行CTR预测
    神经网络(未完)
    互联网金融借款违约预测
    Python3基础复习
  • 原文地址:https://www.cnblogs.com/jamesf/p/4751516.html
Copyright © 2011-2022 走看看