Heute wurde meine Uhr automatisch auf die Sommerzeit eingestellt, und ein Skript von einer Crontab schlug fehl. Ich habe mir angesehen, was gerade geschah, und der folgende Fehler wurde angezeigt LC_ALL=C
:
Datum: ungültiges Datum '2016-10-16'
Ich dachte, es wäre am besten, nur das System neu zu starten, aber jetzt habe ich neu gestartet, und der Fehler erscheint immer noch:
$ date -d '2016-10-15'
Sat Oct 15 00:00:00 BRT 2016
$ date -d '2016-10-16'
date: data inválida “2016-10-16”
$ date -d '2016-10-17'
Mon Oct 17 00:00:00 BRST 2016
Was könnte das verursachen?
locale
s:sv_SE.utf8
unden_us.utf-8
.Antworten:
Das Problem ist, dass die Sommerzeit am 16. Oktober 2016 um 1 Stunde in Ihrer Zeitzone geändert und weitergeleitet wurde:
Daher wird jede Zeit zwischen
00:00
bis00:59
an diesem Tag in Ihrer Zeitzone als ungültig angesehen (aber möglicherweise in anderen als gültig):Sie können eine zusätzliche Zeit einstellen, die nicht in diesem Bereich liegt:
Das obige ist GNU Datumsverhalten.
BSD-Datum hat dieses Problem nicht. Wenn das eingegebene Datum in der Zeitzone ungültig ist, wird es stillschweigend 1 Stunde vorwärts angepasst, bis eine gültige Zeit erreicht ist:
quelle