Wie kehren Sie um gmtime()
, wo Sie die Uhrzeit + das Datum eingeben und die Anzahl der Sekunden erhalten?
Ich habe Zeichenfolgen wie 'Jul 9, 2009 @ 20:02:58 UTC'
und ich möchte die Anzahl der Sekunden zwischen der Epoche und dem 9. Juli 2009 zurückbekommen.
Ich habe es versucht, time.strftime
aber ich weiß nicht, wie ich es richtig verwenden soll oder ob es der richtige Befehl ist.
Verwenden Sie das Zeitmodul:
quelle
time
Unix Epoch (1970) verwendet wird.time.time()
Wert hängt NICHT von der lokalen Zeitzone ab (wenn wir "richtige" Zeitzonen und dergleichen ausschließen), z. B. wenn er die POSIX-Zeit zurückgibt (wie es auf den meisten Systemen der Fall ist), dann ist es die Anzahl der SI-Sekunden seitdem Die Epoche (1970-01-01UTC) zählt keine Schaltsekunden. Dieser Wert kann in UTC konvertiert werden (ohne Schaltsekunden), ist jedoch nicht UTC . @ MarlonAbeykoon: Ich mag diese AntwortBeachten Sie, dass
time.gmtime
Karten Zeitstempel0
auf1970-1-1 00:00:00
.time.mktime(time.gmtime(0))
gibt Ihnen einen Zeitstempel, der um einen Betrag verschoben ist, der von Ihrem Gebietsschema abhängt und im Allgemeinen nicht 0 sein kann.Die Umkehrung von
time.gmtime
istcalendar.timegm
:quelle
mktime()
mitgmtime()
.mktime()
akzeptiert Ihre Ortszeit ,gmtime()
gibt aber die UTC-Zeit zurück - Ihre Ortszeitzone kann und wird wahrscheinlich anders sein. "Zeitstempel relativ zu Ihrem Gebietsschema" ist unsinnig: Der POSIX-Zeitstempel hängt nicht von Ihrem Gebietsschema (lokale Zeitzone) ab - er ist weltweit der gleiche Wert. "Sekunden seit Epoche" ist in den meisten Fällen (auch unter Windows) der POSIX-Zeitstempel - Dinge wie "richtige" Zeitzonen, die die TAI-Zeitskala verwenden, sind nicht üblich. Siehe Gibt Pythons time.time () den lokalen oder UTC-Zeitstempel zurück?mktime()
kurzem ein paar Probleme bekommen . Bei einigen Python-Webservern (z. B. Tornado) verwendet diemktime()
von der Webserver-API aufgerufene Zeitzone weiterhin die alte Zeitzone , um das Zeitobjekt zu generieren , da der Prozess weiterhin ausgeführt wird, auch wenn ich das Systemgebietsschema ändere . Ich muss zumgmtime()
GMT-Offset wechseln und ihn manuell anwenden.Dies sollte sich von unterscheiden
int(time.time())
, aber es ist sicher, so etwas zu verwendenx % (60*60*24)
Datum / Uhrzeit - Grundlegende Datums- und Uhrzeittypen:
quelle
quelle
from datetime import datetime
oder tundatetime.datetime.strptime
Abhängig von Ihrem ursprünglichen Zeitstempel gibt es zwei Möglichkeiten:
mktime()
undtimegm()
http://docs.python.org/library/time.html
quelle