bash“date”返回特定日期字符串的“无效日期”错误

前端之家收集整理的这篇文章主要介绍了bash“date”返回特定日期字符串的“无效日期”错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用date命令在bash中添加一天的日期.日期的输入格式如下: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)调整为前进一小时,因此日期命令返回此日期的“无效日期”错误.
解决问题,如提供的链接中所述,您应该提供除日期之外的时间,显然不应该在无效时间范围内. 3月22日00:00:00至00:59:59之间的任何时间对我的时区无效,应避免.因此,对于2013年3月22日,我可以通过这种方式更改命令以避免错误

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

猜你在找的Bash相关文章