在bash脚本中添加日期

在bash脚本中添加日期,bash,time,date-arithmetic,arithmetic-expressions,Bash,Time,Date Arithmetic,Arithmetic Expressions,我想给约会时间增加1小时。所以我试过这个- date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T" 我把这个作为输出- 2019-02-22 05:21:22 时间没有增加。所以我对date玩得更多了- date -u -d "2019-02-22 05:21:22 + 12 hours" +"%F %T" > 2019-02-21 18:21:22 date -u -d "2019-02-22 05:21:22 -

我想给约会时间增加1小时。所以我试过这个-

date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
我把这个作为输出-

2019-02-22 05:21:22

时间没有增加。所以我对date玩得更多了-

    date -u -d "2019-02-22 05:21:22 + 12 hours" +"%F %T"
    > 2019-02-21 18:21:22

    date -u -d "2019-02-22 05:21:22 - 12 hours" +"%F %T"
    > 2019-02-22 18:21:22

    date -u -d "2019-02-22 05:21:22 + 1 minutes" +"%F %T"
    > 2019-02-22 04:22:22

    date -u -d "2019-02-22 05:21:22 + 1 day" +"%F %T"
    > 2019-02-23 04:21:22
每个命令的输出都非常混乱。我不知道如何增加小时或任何其他时间的日期

我在网上搜索了如何使用date命令,并浏览了如下帖子-

上面的大多数和我所知道的其他人都有和我尝试使用的相同的格式添加到日期中,但对我来说没有效果


因此,我想获得一些帮助,了解如何将小时/分钟/天或任何其他时间单位添加到日期,以及我做错了什么。

解析日期-时间算法很难。鉴于:

date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
日期将此部分
05:21:22+1小时
表示
05:21:22+0100小时
,然后将其解释为
05:21:22+0100+1小时
。参考:

您可以通过将相对时间放在不同的位置来帮助解决歧义:

# ............vvvvvvvv
$ date -u -d "+ 1 hour 2019-02-22 05:21:22" +"%F %T"
2019-02-22 06:21:22
# .........^^
# .......................vvvvvvvv
$ date -u -d "2019-02-22 + 1 hour 05:21:22" +"%F %T"
2019-02-22 06:21:22
# .........^^
# ................................vvvvvvvv
$ date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
2019-02-22 05:21:22
# .........^^
或者,自己指定一个时区

# ...............................v
$ date -u -d "2019-02-22 05:21:22Z + 1 hour" +"%F %T"
2019-02-22 06:21:22
# .........^^

您为什么使用选项
-u
?来考虑在utcThanks Glenn的时间进行解释。