Wie kann ich einen Zeitstring, der Millisekunden enthält, mit Python analysieren?
Ich bin in der Lage zu Parsen von strings mit Datums - /Zeit mit Zeit.strptime
>>> import time
>>> time.strptime('30/03/09 16:31:32', '%d/%m/%y %H:%M:%S')
(2009, 3, 30, 16, 31, 32, 0, 89, -1)
Wie kann ich analysieren eine Uhrzeit-Zeichenfolge, die enthält Millisekunden?
>>> time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/_strptime.py", line 333, in strptime
data_string[found.end():])
ValueError: unconverted data remains: .123
InformationsquelleAutor der Frage ilkinulas | 2009-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python 2.6 wurde eine neue strftime/strptime makro
%f
, die nicht Mikrosekunden. Nicht sicher, ob das dokumentiert irgendwo. Aber wenn Sie mit 2.6 oder 3.0 haben, können Sie dies tun:Edit: ich habe nie wirklich mit den
time
- Modul, so dass ich nicht bemerken dies auf den ersten, aber es scheint, dass die Zeit.struct_time nicht wirklich speichern Millisekunden/Mikrosekunden. Sie können besser mitdatetime
wie diese:InformationsquelleAutor der Antwort DNS
Ich weiß, dies ist eine ältere Frage, aber ich bin immer noch mit Python 2.4.3, und ich musste einen besseren Weg finden, der Umwandlung der string-Daten an eine datetime.
Die Lösung, wenn datetime nicht unterstützt "%f " und ohne einen try/except ist:
Diese Werke den input-string "2010-10-06 09:42:52.266000"
InformationsquelleAutor der Antwort Andrew Stern
Geben Sie den code, der nstehr Antwort bezieht sich auf (von seine Quelle):
InformationsquelleAutor der Antwort Phil H
Mein Erster Gedanke war, zu versuchen, übergeben Sie '30/03/09 16:31:32.123' (mit einem Punkt statt ein Doppelpunkt zwischen den Sekunden und Millisekunden.) Aber das hat nicht funktioniert. Ein kurzer Blick in die Doku zeigt, dass in Bruchteilen von Sekunden werden ignoriert, in jedem Fall...
Ah, version Unterschiede. Dies war gemeldet als bug und jetzt in 2.6+, die Sie verwenden können, "%s%f" zu analysieren.
InformationsquelleAutor der Antwort MarkusQ
vom python mailing-Listen: Analyse Millisekunde thread. Gibt es eine Funktion geschrieben, die scheint, um den job zu erledigen, obwohl wie bereits erwähnt der Autor Kommentare es ist so eine Art hack. Es verwendet reguläre Ausdrücke zu behandeln, die Ausnahme, die ausgelöst wird, und dann ein paar Berechnungen.
Könnte man auch versuchen, tun die regulären Ausdrücke und Berechnungen, die vor der übergabe an strptime.
InformationsquelleAutor der Antwort nstehr
Für python 2 habe ich dieses
druckt es Zeit, "%H:%M:%S" , teilt die Zeit.Zeit (), um zwei Teilfolgen (vor und nach dem .) xxxxxxx.xx und da .xx sind mein Millisekunden füge ich die zweite substring in meinem "%H:%M:%S"
hoffe das macht Sinn 🙂
Beispiel-Ausgabe:
13:31:21.81
ENDE VON BLINK-01
13:31:26.3
Blink 01
13:31:26.39
ENDE VON BLINK-01
13:31:34.65
Gestartet 01
InformationsquelleAutor der Antwort Papatrexas