gpt4 book ai didi

string - bash "date"返回特定日期字符串的 "invalid date"错误

转载 作者:行者123 更新时间:2023-11-29 08:54:18 27 4
gpt4 key购买 nike

我想在 bash 中使用 date 命令向日期添加一天。日期的输入格式是这样的:20130101表示2013年1月1日

我使用这个命令来完成:

date -d "20130101 +1 day" +%Y%m%d

一切顺利,直到到达这个日期:20130322

然后它返回了这个错误:

date: invalid date ‘20130322 +1 day’

我用其他一些类似的日期尝试了代码,其中一些没问题,有些则没有!正常吗?我的意思是它可能与数字系统转换有某种关系,就像 for 循环到达第 9 个循环时发生的那样。我怎样才能正确解决这个问题?

最佳答案

好的,我找到了问题的原因。

问题与每个时区不同的夏令时有关。因此,该错误预计会在不同时区的不同日期重现。可以找到更多信息here.

我的时区是 IRST (+3:30),例如,在 2013 年 3 月 22 日 (20130322) 调整为向前一小时,因此 date 命令返回此日期的“无效日期”错误。为了解决这个问题,正如提供的链接中也提到的,除了日期之外还应该提供时间,这显然不应该在无效时间范围内。 3 月 22 日 00:00:00 到 00:59:59 之间的任何时间对我的时区都是无效的,应该避免。所以对于 2013 年 3 月 22 日,我可以这样更改命令以避免错误:

date -d "20130322 12:00 +1 day" +%Y%m%d

关于string - bash "date"返回特定日期字符串的 "invalid date"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26212198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com