2016-05-09 8 views
0

Ich habe keine Ahnung, wie dies zu implementieren ist. Bitte beschreiben Sie, wie Sie es richtig machen.Wie kann ich "2016.05.09 15:45:45" in 1462788945000 umrechnen?

datetest = "2016.05.09" + " "+ "15:45:45" 
from datetime import datetime 
d = datetime.strptime(datetest, "%Y.%m.%d %H:%M") 
epocht = d.strftime("%Y.%m.%d %H:%M:%S") 
+0

sollte nicht die Antwort lautet 1462788945 statt 1462788945000? –

+0

Warum? Es sind Millisekunden seit der Unix-Epoche, dem von JavaScript zum Beispiel verwendeten Format. – CherryDT

Antwort

1

Check this out:

from datetime import time 
timestamp = int(time.mktime(d.timetuple())) * 1000 
1

können Sie versuchen, diese -

import time 
import datetime 

t = datetime.datetime(2016, 5, 9, 15, 45, 45) 
print(time.mktime(t.timetuple() * 1000)) 
+0

Dies ergibt die falsche Nummer, es sind Sekunden statt Millisekunden, wie vom OP gefordert. – CherryDT

+1

Das OP sollte explizit angeben. –

+0

Es ist klar aus dem Titel. Das OP spezifiziert, basierend auf einem Beispiel, wie die Transformation funktionieren soll: "Wie konvertiert man" 2016.05.09 15:45:45 "in 1462788945000?" – CherryDT

0
from datetime import datetime 
import time 

datetest = "2016.05.09" + " "+ "15:45:45" 
d = datetime.strptime(datetest, "%Y.%m.%d %H:%M:%S") 
t = d.timetuple() 
res = int(time.mktime(t)) * 1000 
print(res) # -> 1462833945000 
0

Ich benutze den dateutil Parser, da es eine gewisse Flexibilität bietet, aber andere können nicht einverstanden

In [1]:

from dateutil.parser import parse as dateparse 
datetest = "2016.05.09" + " "+ "15:45:45" 
dateparse(datetest).timestamp() * 1000 

Out [1]:

1462830345000.0 

'dateparse' gibt ein datetime.datetime Objekt:

In [2]:

dateparse(datetest) 

Out [2]:

datetime.datetime(2016, 5, 9, 15, 45, 45) 
Verwandte Themen