我用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
它将我的时区添加到日期。添加时间单位时如何忽略时区?
答案 0 :(得分:4)
正在发生的事情是,+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