linux下shell日期运算

来源:互联网 发布:万网备案域名 编辑:程序博客网 时间:2024/05/17 02:03

获取当前时间的相对时间位移:

法一:

-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"



原创粉丝点击