加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:02:05 所属栏目:安全 来源:网络整理
导读:我想使用date命令在bash中添加一天的日期.日期的输入格式如下:20130101,表示2013年1月1日 我使用此命令来实现: date -d "20130101 +1 day" +%Y%m%d 一切顺利,直到达到这个日期:20130322 然后它返回了这个错误: date: invalid date ‘20130322 +1 day’
我想使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读