为什么添加 1 天与下面的变量 $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 天
中的 +1
正在被解释作为附加到日期的 UTC 偏移量。
解决方案是使用时区说明符(例如 Z
或 UTC
)终止日期字符串,以便将其识别为完整日期。
有关日期规范的更多详细信息,请参阅 info '(coreutils) date invocation'
。
关于Linux 日期对象在指定小时/分钟/秒时表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484219/