当指定小时/分钟/秒时,Linux日期对象的行为有所不同

时间:2019-04-02 22:05:45

标签: linux bash datetime

为什么添加一天与下面的变量$d$dt不同?

Linux版本:CentOS 6.8

如果$dt正在进行某种隐藏的时区转换,而$d却没有?如果是这样,我该如何抑制呢?

d="2019-04-01"
dt="2019-04-01 01:00:00"
date --date="$d +1 days" +'%Y-%m-%d'

输出:2019-04-02

date --date="$dt +1 days" +'%Y-%m-%d %H:%M:%S'

输出:2019-04-01 17:00:00

1 个答案:

答案 0 :(得分:1)

就这样回答了这个问题(我找不到重复的问题),评论中指出+1中的+1 days被解释为附加到日期的UTC偏移量。

解决方案是使用诸如ZUTC之类的时区说明符终止日期字符串,以便将其识别为完整日期。

有关日期规范的更多详细信息,请参见info '(coreutils) date invocation'