Es muss einen einfacheren Weg geben, dies zu tun. Ich habe Objekte, die von Zeit zu Zeit aktualisiert werden möchten. Daher möchte ich aufzeichnen, wann sie erstellt wurden, mit dem aktuellen Zeitstempel vergleichen und bei Bedarf aktualisieren.
datetime.datetime hat sich als schwierig erwiesen, und ich möchte nicht in die ctime-Bibliothek eintauchen. Gibt es etwas Einfacheres für so etwas?
(b-a).microseconds
und dann teilen, um die Sekunden (1000000) oder Millisekunden (1000) zu erhalten-60
:from datetime import datetime; (datetime(2019, 1, 1, 0, 0) - datetime(2019, 1, 1, 0, 1)).total_seconds()
würde das für dich funktionieren?
quelle
(7 ist die Zeit, die Sie oben gewartet haben)
Ich finde datetime.datetime ziemlich nützlich. Wenn Sie also auf ein kompliziertes oder unangenehmes Szenario gestoßen sind, lassen Sie es uns bitte wissen.
EDIT: Vielen Dank an @WoLpH für den Hinweis, dass man nicht immer so häufig nach Aktualisierungen suchen muss, dass die Datenzeiten nahe beieinander liegen. Durch die Berücksichtigung der Tage im Delta können Sie längere Zeitstempeldiskrepanzen behandeln:
quelle
d.seconds + d.days * 86400
stattdessen zurückkehren, ist es für mehrere Tage korrekt;)a - b
, woa
ist vorb
(dh so das Ergebnis negativ sein wird):(a - b).seconds == 86282
währenda - b == datetime.timedelta(-1, 86276, 627665)
. Ich glaube, die richtige Methode ist,timedelta.total_seconds()
... Aber das ist nur py2.7 +.timedelta.total_seconds()
. Dementsprechend herabgestimmt.total_seconds()
ist eine Funktion ab 2.7.Wir haben die Funktion total_seconds () mit Python 2.7. Siehe folgenden Code für Python 2.6
quelle
Hier ist der, der für mich arbeitet.
Hoffe das hilft!
quelle