我有Linux(RH 5.3)机器
我需要添加/计算10天加上日期,以便获得新的日期(失效日期)
例如
# date
Sun Sep 11 07:59:16 IST 2012
所以我需要
NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012
请建议如何计算新的到期日期(使用bash,ksh或操纵日期命令?)
我有Linux(RH 5.3)机器
我需要添加/计算10天加上日期,以便获得新的日期(失效日期)
例如
# date
Sun Sep 11 07:59:16 IST 2012
所以我需要
NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012
请建议如何计算新的到期日期(使用bash,ksh或操纵日期命令?)
Answers:
您只需使用-d
开关并提供要计算的日期
date
Sun Sep 23 08:19:56 BST 2012
NEW_expration_DATE=$(date -d "+10 days")
echo $NEW_expration_DATE
Wed Oct 3 08:12:33 BST 2012
-d, --date=STRING display time described by STRING, not ‘now’
这是一个非常强大的工具,您可以执行以下操作
date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 03:29:16 BST 2012
要么
TZ=IST date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 07:59:16 IST 2012
要么
prog_end_date=`date '+%C%y%m%d' -d "$end_date+10 days"`
因此,如果$ end_date = 20131001,则$ prog_end_date = 20131011
brew install coreutils
安装GNU的日期功能,gdate
。
$ docker run -it bash bash bash-5.0# date -d "+10 days" date: invalid date '+10 days' bash-5.0#
$ date -v -1d
为了使用date命令获得1天的追溯日期:
$ date -v -1d
它将给(当前日期-1)表示1天前。
$ date -v +1d
这将使(当前日期+1)表示1天后。
类似地,下面的书面代码可以代替“ d”来找出年,月等。
y-Year
m-Month
w-Week
d-Day
H-Hour
M-Minute
S-Second
date
,GNU date
(gdate
在许多BSD上)不支持该语法。GNU date
使用公认的答案中的语法。永远记住:GNU不是Unix!
date
信息页面中!