添加到 bash 脚本中的日期
Addition to a Date in bash script
我想将约会时间加 1 小时。所以我尝试了这个 -
date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
我把这个作为输出 -
2019-02-22 05:21:22
小时数没有增加。所以我玩了一些约会 -
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 命令并浏览了像 -
这样的帖子
- add-some-specific-time-while-using-the-linux-command-date
- how-to-add-n-hours-to-a-specified-time
- linux-add-x-days-to-date-and-get-new-virtual-date
- calculating-time-adding-minutes-bash
上面的大多数和我想通的其他人都具有相同的格式来添加到我尝试使用的日期中,但它对我不起作用。
所以我想了解如何添加 hours/minutes/days 或任何其他时间单位到日期以及我做错了什么。
解析日期时间算术很难。鉴于:
date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
date 将这部分 05:21:22 + 1 hour
表示为 05:21:22+0100 hour
, 然后 将其解释为 05:21:22+0100 +1 hour
。参考:https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
您可以通过将相对时间放在不同的位置来帮助解决歧义:
# ............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
# .........^^
我想将约会时间加 1 小时。所以我尝试了这个 -
date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
我把这个作为输出 -
2019-02-22 05:21:22
小时数没有增加。所以我玩了一些约会 -
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 命令并浏览了像 -
这样的帖子- add-some-specific-time-while-using-the-linux-command-date
- how-to-add-n-hours-to-a-specified-time
- linux-add-x-days-to-date-and-get-new-virtual-date
- calculating-time-adding-minutes-bash
上面的大多数和我想通的其他人都具有相同的格式来添加到我尝试使用的日期中,但它对我不起作用。
所以我想了解如何添加 hours/minutes/days 或任何其他时间单位到日期以及我做错了什么。
解析日期时间算术很难。鉴于:
date -u -d "2019-02-22 05:21:22 + 1 hour" +"%F %T"
date 将这部分 05:21:22 + 1 hour
表示为 05:21:22+0100 hour
, 然后 将其解释为 05:21:22+0100 +1 hour
。参考:https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
您可以通过将相对时间放在不同的位置来帮助解决歧义:
# ............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
# .........^^