在linux bash中输入date -d "1986-01-01"
时显示错误
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
答案 0 :(得分:11)
尼泊尔于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到00:14: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
答案 1 :(得分:-1)
我认为您在命令中使用大写字母“O”而不是数字“0”:)