首页 > 代码库 > date命令高级用法

date命令高级用法

内容来源于BBS,经过整理贴出来分享!


计算3天前的日期

date +%D -d ‘-3 days‘
11/03/12


计算3天后的日期

date +%D -d ‘+3 days‘
11/09/12


计算3天后的日期,写不写+都一个效果,跟上边结果一样

date +%D -d ‘3 days‘
11/09/12

计算1个月前的日期

date +%F -d ‘-1 month‘
2012-10-06


计算1年前的日期

date +%F -d ‘-1 year‘
2011-11-06

再来看看相关时间的操作,有了刚才上边对日期操作的理解,看这个时间相比不难。E文单词不懂的去问translate.google.com.hk ^_^


获取当前时间

date +%T
13:48:25


获取1小时前的时间

date +%T -d ‘-1 hours‘
12:48:27


获取10分钟前的时间

date +%T -d ‘-10 minutes‘
13:38:35


获取3小时后的时间

date +%T -d ‘3 hours‘
16:49:08

有关时间戳的处理,时间戳的基准是1970年1月1日0点0分0秒,注意这可是格林尼治天文台的时间,不是北京时间啊。


显示系统当前的时间戳

date +%s
1352183334


把某时间戳转换回日期格式

date -d "@1352183334"
Tue Nov  6 14:28:54 CST 2012


看到了吧,因为现在这个系统是东8区的时区,所以0时间戳时候,这系统应该已经是1970年1月1日早上8点了

date -d "@0"
Thu Jan  1 08:00:00 CST 1970


再来个计算任意日期的前N日或后N日如何操作

DAY="20000101"
echo $DAY
20000101
date +%F -d "$DAY 1 day"
2000-01-02
date +%F -d "$DAY -1 day"
1999-12-31


计算两个日期相差天数,比如2012年11月1日和2010年5月1日,相差多少天呢?

d1=$(date +%s -d 20121101)
d2=$(date +%s -d 20101101)
echo $(((d1-d2)/86400))
731


本文出自 “lisp的运维之路” 博客,请务必保留此出处http://lspgyy.blog.51cto.com/5264172/1543682

date命令高级用法