“ date”命令不喜欢2018年的一个特定日期

问题描述 投票:0回答:1
我需要从bash脚本中的循环中的日期中减去两天,但是过去的某个时候,它失败了。我怀疑那里有某种数字限制。我可以使用什么样的解决方法?我在Linux Mint 21上使用Bash 5.1(基本上是Ubuntu 22.04 LTS)。

jcastro@localhost:~$ date --date="2025-03-01 - 2 days" +"%Y-%m-%d" 2025-02-27 jcastro@localhost:~$ date --date="2018-11-06 - 2 days" +"%Y-%m-%d" 2018-11-04 jcastro@localhost:~$ date --date="2018-11-04 - 2 days" +"%Y-%m-%d" date: invalid date '2018-11-04 - 2 days'

似乎2018年11月4日,是一个无效的日期。
jcastro@jclvdell:~$ date --date="2018-11-02" Fri Nov 2 00:00:00 -03 2018 jcastro@jclvdell:~$ date --date="2018-11-03" Sat Nov 3 00:00:00 -03 2018 jcastro@jclvdell:~$ date --date="2018-11-04" date: invalid date '2018-11-04' jcastro@jclvdell:~$ date --date="2018-11-05" Mon Nov 5 00:00:00 -02 2018 jcastro@jclvdell:~$ date --date="2018-11-06" Tue Nov 6 00:00:00 -02 2018

@ @tjm3772和@jasonharper是正确的。这是日光储蓄时间问题。
date
命令将“ 2018-11-04”解释为日期,而是及时的日期,“ 2018-11-04 00:00:00” - 巴西确实不存在那个及时的瞬间,因为那是时钟前进的时候。从2019年开始,DST已不再在巴西使用,这就是为什么从当前日期到该点顺利的一切。
bash shell date linux-mint date-arithmetic
1个回答
0
投票


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.