代码之家  ›  专栏  ›  技术社区  ›  vakarami

向没有时区的日期添加时间单位

  •  1
  • vakarami  · 技术社区  · 6 年前

    我用linux bash写这些

    date -d "2018-08-21 02:00:00" +'%y-%m-%d %T'

    并且它打印

    2018-08-21 02:00:00

    但是当我写这些的时候

    date -d "2018-08-21 02:00:00 +1 hour" +'%y-%m-%d %T'
    

    资讯科技印刷

    2018-08-21 07:30:00 而不是 2018-08-21 03:00:00

    它将我的时区添加到日期中 . 当我添加时间单位时,我如何忽略时区?

    1 回复  |  直到 6 年前
        1
  •  4
  •   kvantour    6 年前

    发生的是 +1 被解释为时区 UTC+1h . 因此,它会将输入日期从UTC+1转换为本地时区,然后由于声明的原因,仍会向其添加额外的一个小时。 hour .

    为了解决这个问题,你必须摆脱 + 符号。以下是一些可能性:

    date -d "2018-08-21 02:00:00 next hour" "+%F %T"
    date -d "2018-08-21 02:00:00 hour" "+%F %T"
    

    或者使用浮点数:

    date -d "2018-08-21 02:00:00 + 1.0 hour" "+%F %T"
    

    有关这种情况的原因的更多信息,请查看: How to add an interval to a date/time stored in a variable