微信搜索lxw1234bigdata | 邀请体验:数阅–数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

Linux shell中对日期时间的处理、日期时间加减

编程语言 lxw1234@qq.com 25416℃ 0评论

传入一个日期,获取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中对日期时间的处理、日期时间加减

喜欢 (9)
分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址