传入一个日期,获取N天前的日期
例如,传入2015-10-10,获取3天前的日期:
[liuxiaowen@getway ~]$ day1=2015-10-10 ##先将传入的2015-10-10转换成精确到秒的时间戳 [liuxiaowen@getway ~]$ time1=`date +%s -d "$day1"` [liuxiaowen@getway ~]$ echo $time1 1444406400 ##在利用时间戳减去3天的秒数(3*86400秒),得到3天前的时间戳 [liuxiaowen@getway ~]$ time2=$(($time1-3*86400)) [liuxiaowen@getway ~]$ echo $time2 1444147200 ##将3天前的时间戳转换成日期 [liuxiaowen@getway ~]$ day2=$(date +%Y-%m-%d -d "1970-01-01 UTC $time2 seconds") [liuxiaowen@getway ~]$ echo $day2 2015-10-07
获取两个日期之间相差的天数
还是利用上面的办法,获取2015-10-10和2015-09-27之间相差的天数
[liuxiaowen@getway ~]$ day1=2015-10-10 [liuxiaowen@getway ~]$ day2=2015-09-27 [liuxiaowen@getway ~]$ [liuxiaowen@getway ~]$ time1=`date +%s -d "$day1"` [liuxiaowen@getway ~]$ time2=`date +%s -d "$day2"` [liuxiaowen@getway ~]$ [liuxiaowen@getway ~]$ days=$((($time1-$time2)/86400)) [liuxiaowen@getway ~]$ echo $days 13
获取今天、昨天、前天的日期
###今天 [liuxiaowen@getway ~]$ date -d "now" +%Y-%m-%d 2015-10-10 [liuxiaowen@getway ~]$ date -d "today" +%Y-%m-%d 2015-10-10 ###昨天 [liuxiaowen@getway ~]$ date -d "yesterday" +%Y-%m-%d 2015-10-09 [liuxiaowen@getway ~]$ date -d "1 days ago" +%Y-%m-%d 2015-10-09 ###前天 [liuxiaowen@getway ~]$ date -d "2 days ago" +%Y-%m-%d 2015-10-08
其他Linux shell中关于日期时间的处理,基本上都可以参考上面的方法来获取。
如果觉得本博客对您有帮助,请 赞助作者 。
转载请注明:lxw的大数据田地 » Linux shell中对日期时间的处理、日期时间加减