获取当前时间的相对时间位移:
法一:
-d or --date=STRING 其描述是display time described by STRING, not ‘now’, STRING为n second(s)/minute(s)/hour(s)/day(s)/year(s) ago 即可,其中n支持负数,表示之后之间。
获取10分钟之前的时间: date --date=“10 munites ago”
获取10天之前的时间: date --date=“10 days ago”
获取10分钟之后的时间: date --date=“-10 munites ago”
获取10天之后的时间: date --date=“-10 days ago”
这样就实现了使用shell命令做日期的计算了
此获得结果为:Wed Jun 6 11:43:01 CST 2012
法二:
(1) date +%Y%m%d -d "-2 day"
表示以“%Y%m%d”格式,获得2天前日期(以当前时间计算),返回结果为:20120704
此方式更加灵活,但是比法一麻烦。
如:date +%Y/%m/%d -d "-2 day",返回结果为:2012/07/04
(2) date +%Y%m%d -d " 2012/07/06 -2 day"
表示从2012/07/06算起,前2天日期,返回结果为:2012/07/04
注意:" 2012/07/06 -2 day" 中的日期格式可写成“2012-07-06”,就不可写成“20120706”,返回结果由+%Y%m%d控制
更复杂些的:date +%Y%m%d -d'2007/02/12 -1 month -1 year -24 day'
法三:
前一天的日期
date -d"1 day ago" +"%y%m%d"
前一个月的日期
date -d"1 month ago" +"%y%m%d"
类似的还有
date -d"-1 day ago 1 month ago"+"%y%m%d"
date -d"1 dayago -1 year ago 1 month ago" +"%y%m%d"
shell中定义变量为日期计算结果方式为:
d2=&date --date="31 days ago"