我在Linux上,我正在尝试使用日期工具向指定的日历日期添加一定天数,小时和分钟:
例如:
$ date -d "2013-01-01 + 305 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131102123000
将结果拆分,以便我们更容易阅读:
2013-11-02 12:30:00
这似乎工作正常。但是,当我添加306天而不是305:
$ date -d "2013-01-01 + 306 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131103113000
分割:
2013-11-03 11:30:00
注意小时现在显示的是11而不是12!但我告诉它增加12小时......让我再一次增加一天:
$ date -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131104123000
再次拆分结果:
2013-11-04 12:30:00
现在时间可以追溯到我的预期。我使用日期版本8.12和8.4对此进行了测试,两者都有相同的结果。我做错了什么?
答案 0 :(得分:1)
我试图从UTC日期添加,但我没有将此指定给该工具。这是解决方案:
date --utc -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
由于UTC不遵守DST,因此小时内不会发生任何变化。