猛砸date命令无效日期
在linux下的bash当我输入date -d "1986-01-01"
它显示错误猛砸date命令无效日期
date: invalid date "1986-01-01"
时date -d "1986-01-02"
它的工作原理
时date -d "1987-01-01"
它也可以
为什么date -d "1986-01-01"
显示了Linux的Bash shell中的错误。
我使用的Fedora 16
尼泊尔在1986年开始改变了它的时区。下表是从的tzdata包复制:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Kathmandu 5:41:16 - LMT 1920
5:30 - IST 1986
5:45 - NPT # Nepal Time
这意味着,在1986年1月1日从00:00:00至○点一十四分59秒的时候是无效的。下面的两个命令显示,这1986年的第一天开始00:15:00:
$ TZ=Asia/Kathmandu date -d '1985-12-31 23:59:59' '+%s'
504901799
$ TZ=Asia/Kathmandu date -d '1986-01-01 00:15:00' '+%s'
504901800
所以date
错误消息是正确的。该时区的日期无效。我不确定你对这个命令的结果做了什么。但是,您可以尝试使用UTC,因为所有日期在UTC中都是有效且明确的:
$ TZ=UTC date -d '1986-01-01'
Wed Jan 1 00:00:00 UTC 1986
谢谢我的详细回答 – 2013-05-01 09:59:21
@nosid:非常好的解释 – 2013-05-02 09:20:42
我觉得你是在命令中使用字母“O”用大写字母代替数字“0” :)
类似'date -d“的东西1986-01-01”“+%Y”'? – fedorqui 2013-05-01 09:13:50
它不起作用显示相同的错误 – 2013-05-01 09:15:36
我有fedora 12,14和15,他们不显示这样的错误。所以我相信这是特定的f16 – 2013-05-01 09:17:59