Ich habe ein Ruby-Skript verwendet, um den ISO-Zeitstempel in eine Epoche umzuwandeln. Die Dateien, die ich analysiere, haben die folgende Zeitstempelstruktur:
2009-03-08T00:27:31.807
Da ich Millisekunden behalten möchte, habe ich folgenden Ruby-Code verwendet, um ihn in die Epochenzeit zu konvertieren:
irb(main):010:0> DateTime.parse('2009-03-08T00:27:31.807').strftime("%Q")
=> "1236472051807"
Aber in Python habe ich Folgendes versucht:
import time
time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))
Aber ich bekomme nicht die ursprüngliche Uhrzeit zurück,
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))
'41152-03-29 02:50:07'
>>>
Ich frage mich, ob es damit zusammenhängt, wie ich formatiere.
1000.0
wodurch die Millisekunden in der Datumszeit beibehalten werden.das sind milisekunden, dividiere sie einfach durch 1000, da gmtime sekunden erwartet ...
time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807/1000.0))
quelle
timestamp/1000.0
wodurch sie als Dezimalzahl übergeben werden ... (obwohl ich nicht sicher bin , ob Sie sie abrufen können)seconds == milliseconds/1000
... wenn Sie dies in eine Funktion setzen, haben Sie eine gmtime, die Millisekunden akzeptiert ... Mikrosekunden, die Sie einfach durch 10 ^ 6 teilen