Ich arbeite unter Linux und versuche, einem bestimmten Kalenderdatum mit dem Datumstool eine bestimmte Anzahl von Tagen, Stunden und Minuten hinzuzufügen:
Zum Beispiel:
$ date -d "2013-01-01 + 305 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131102123000
Teilen Sie das Ergebnis auf, damit wir leichter lesen können:
2013-11-02 12:30:00
Dies scheint korrekt zu funktionieren. Wenn ich jedoch 306 Tage anstelle von 305 hinzufüge:
$ date -d "2013-01-01 + 306 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131103113000
Teilt:
2013-11-03 11:30:00
Beachten Sie, wie die Stunde jetzt 11 statt 12 anzeigt! Aber ich sagte ihm, er solle 12 Stunden hinzufügen ... Lassen Sie mich den Tag noch einmal erhöhen:
$ date -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131104123000
Und teilen Sie das Ergebnis noch einmal:
2013-11-04 12:30:00
Jetzt geht die Stunde zurück zu dem, was ich erwartet hatte. Ich habe dies mit den Datumsversionen 8.12 und 8.4 getestet, das gleiche Ergebnis passiert auf beiden. Was mache ich falsch?
Ich habe versucht, ab einem UTC-Datum hinzuzufügen, aber ich habe dies dem Tool nicht angegeben. Das ist die Lösung:
date --utc -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
Da UTC die Sommerzeit nicht einhält, gibt es keine Stundenverschiebungen.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen