Ich möchte die Datumsinformationen mit diesem Befehl erhalten:
date --date=2019-03-22
oder
date --date=2019/03/22
aber es zeigt diesen Fehler:
date: invalid date ‘2019-03-22’
oder
date: invalid date ‘2019/03/22’
Wie Sie sehen können, hat es nichts mit Bindestrich zu tun. Das gleiche passiert mit Schrägstrich.
Wenn ich ein anderes Datum wie benutze
date --date=2019-03-21
Es zeigt die Informationen korrekt an.
Es sollte nicht mit dem schlechten Strichcharakter zusammenhängen. weil ich gerade den letzten gelöscht 2
und durch ersetzt habe 1
und die Ausgabe in Ordnung ist.
Was läuft falsch?
Ergebnis einiger Befehle für weitere Informationen:
$ date --version
date (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David MacKenzie.
$ type -a date
date is /bin/date
$ uname -m
x86_64
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
$ which date
/bin/date
$ apt-cache policy coreutils
coreutils:
Installed: 8.28-1ubuntu1
Candidate: 8.28-1ubuntu1
Version table:
*** 8.28-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status
$ date
Fri Mar 22 06:54:59 PDT 2019
date --date=2019-03-22 2>&1 | od -c
0000000 d a t e : i n v a l i d d a
0000020 t e 342 200 230 2 0 1 9 - 0 3 - 2 2
0000040 342 200 231 \n
0000044
In diesem Datum ist etwas Seltsames mit einer anderen Zeitzone los : 2019-03-22
. Ich habe die Zeitzone zufällig in verschiedene Bereiche geändert. Einige von ihnen haben Fehler, andere nicht! Wenn ich diese auswähle, habe ich ein Problem mit diesem bestimmten Datum:
- Los Angeles (USA)
- Shanghai, China)
- Madrid, Spanien)
quelle
Antworten:
Ich bin mir fast sicher, dass dies auf die Umstellung auf Sommerzeit in der angegebenen Zeitzone zurückzuführen ist: Dies bedeutet effektiv, dass eine Stunde "verschwindet" (und somit "
invalid
" wird).In meiner eigenen Zeitzone begann die Sommerzeit am Sonntag, dem 10. März, um 2 Uhr morgens, sodass diese Stunde ungültig ist:
während die Zeiten unmittelbar davor und danach gültig sind:
In Zeitzonen, in denen die Umstellung um Mitternacht erfolgt, erscheint das bloße Datum ungültig, da GNU
date
eine Zeit von Mitternacht annimmt:aber eine Stunde später ist gültig:
Siehe auch Ungültiges Datum Linux
quelle
tzdata
Pakets hat das Problem für mich behoben. Jetzt hat nur eine Zeitzone einen Fehler, wie Sie in Ihrer Antwort erklärt haben, ohne Zeit hinzuzufügen. Ich weiß nicht, was mit demtzdata
Paket schief gelaufen ist , habe aber sogarTZ=America/Toronto date --date="2019-03-10 02:00:00"
das Ergebnis ohne Fehler zurückgegeben, bevor ich dastzdata
Paket neu installiert habe . Vielen Dank für Ihre Zeit.und
quelle
tzdata
Paket neu installieren .