Linux中date命令的各种实用方法--转载
副标题[/!--empirenews.page--]
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,??? 以下是我在工作中积累的关于date命令的用法,绝大多数都有解释说明,并配有范例,记录了linux中date命令的各种特定时间的表示方法,如何修改为特定的时间等,相信读者在认真读完并领会接下来的范例之后,一定会对date命令更加熟练,达到举一反三的效果,从而可以任意表示想要表示的时间,也就可以任意调整服务器的时间了,这其中有网上的各中学习资料,也有date自身的man手册,也有很多同事的智慧,也有个人的独立学习,在此也感谢各位前辈的的贡献和各位同事积极的帮助。如果本文中有错误之处,请联系QQ:349871740,欢迎指正^_^ 1、以下是服务器现在的时间,当前时间的各种表示方法,表示成自己想要的时间格式,后面的范例将会在这个时间基础之上进行演示,同时这也是熟练掌握后面各种date命令的前提,请读者注意[root@RHEL601 tmp]# date2012年 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:%S2012-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 CST2012年 07月 19日 星期四 20:13:54 CST[root@RHEL601 tmp]# date && date -d "+30 second"??2012年 07月 19日 星期四 20:14:29 CST2012年 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年 将显示 2012y?#代表缩写年份,例如:2012年 缩写为 12 [root@RHEL601 tmp]# date +"%y%m01%H%M%S"121201121556[root@RHEL601 tmp]# date +"%Y%m01%H%M%S"20121201121610 (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |