Konvertieren von Datetime-Objekten in Sekunden in Python
Bei der Arbeit mit Datetime-Objekten in Python ist es häufig erforderlich, diese für verschiedene Zwecke in Sekunden zu konvertieren analytische Zwecke. Allerdings liefert die toordinal()-Methode möglicherweise nicht die gewünschte Ausgabe, da sie nur zwischen Datumsangaben mit unterschiedlichen Tagen unterscheidet.
Um ein Datum/Uhrzeit-Objekt genau in Sekunden umzuwandeln, insbesondere für das spezifische Datum 1. Januar 1970, Es stehen mehrere Optionen zur Verfügung. Für alle anderen Startdaten müssen Sie den Zeitunterschied zwischen den beiden Daten berechnen.
Für den 1. Januar 1970:
datetime.datetime.timestamp(): Diese Methode gibt direkt die Anzahl der Sekunden seit der Unix-Epoche zurück, die 00:00:00 UTC am 1. Januar 1970 entspricht.
t = datetime.datetime(1970, 1, 1)
seconds = t.timestamp()
time.mktime(): Die Funktion time.mktime() kann auch verwendet werden, um ein Datum/Uhrzeit-Objekt in Sekunden seitdem umzuwandeln die Unix-Epoche.
import time
t = datetime.datetime(1970, 1, 1)
time_struct = t.timetuple()
seconds = time.mktime(time_struct)
Für jedes andere Startdatum:
timedelta.total_seconds (): Das Subtrahieren zweier Datetime-Objekte führt zu einem Timedelta-Objekt. Die Methode total_seconds() von timedelta liefert die Anzahl der Sekunden zwischen den beiden Daten.
t = datetime.datetime(2009, 10, 21, 0, 0)
starting_date = datetime.datetime(1970, 1, 1)
seconds = (t - starting_date).total_seconds()
Es ist wichtig zu beachten, dass das Startdatum für genaue Ergebnisse in UTC (koordinierte Weltzeit) angegeben werden sollte. Wenn Ihr Datum/Uhrzeit nicht in UTC angegeben ist, müssen Sie es konvertieren oder eine tzinfo-Klasse mit dem entsprechenden Offset anhängen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3