在Linux中如何进行日期加减
时间:2019-11-20 08:53:39 来源:igfitidea点击:
在Linux shell中,如何显示当前的日期和时间?
在Linux上如何使用date命令设置日期和时间。
在shell脚本中,如何对日期进行加减?
在Linux上查看当前日期
使用date命令
date
输出示例:
Sun Jan 17 03:41:27 EST 2017
指定TZ显示美国时间,不更改本地时间:
TZ='America/Los_Angeles' date
输出示例:
Sun Jan 17 00:42:11 PST
查看2天前的日期和时间:
date --date='2 days ago'
输出示例:
Fri Jan 15 03:43:02 EST
查看3月零两天前的日期:
date --date='3 months 2 day'
Linux shell日期加法
语法如下所示,以在给定日期上添加天数并在GNU/Linux日期版本上找到新的日期/时间:
将天数添加到日期中:
date -d="YYYY-MM-DD+N days" date --date="YYYY-MM-DD+N days" TZ='TIME_ZONE_HERE' date -d="YYYY-MM-DD+N days"
示例,在2017-03-14的基础上添加20天:
date -d "2017-03-14+20 days" ## 设置美国时间 TZ='America/New_York' date -d "2017-03-14+20 days" ## 在shell中计算日期 base="2017/07/29" days="20 days" echo "shell date $(date -d "${base}+${days}")"
Linux日期减法
只需将加号改成减号:
date -d "YYYY-MM-DD-N days" date -d "2017-08-15-5 days"
Thu Aug 10 00:00:00 EDT 2017
在macOS或BSD上的说明
BSD系列操作系统上的语法略有不同:
date -v {format} ## 查看当前日期 date ## macOS / FreeBSD 在当前日期上加上2天 date -v +2d ## macOS / FreeBSD / OpenBSD / NetBSD系统中,在当前日期上减去4天 date -v -4d
在macOS/BSD UNIX中进行日期加减
语法如下:
date -j -v +Nd -f "%Y-%m-%d" "YYYY-mm-dd" +%Y-%m-%d
将20天添加到2017年8月15日:
date -j -v +20d -f "%Y-%m-%d" "2017-08-15" +%Y-%m-%d
从2017年8月20日减去10天:
days="10d" my_date="2017-08-20" date -j -v -${days} -f "%Y-%m-%d" "${my_date}" +%Y-%m-%d