2016-05-09 3 views
0

Я понятия не имею, как это реализовать. Опишите, как это сделать правильно.Как конвертировать "2016.05.09 15:45:45" в 1462788945000?

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

не должен ответ будет 1462788945 вместо 1462788945000? –

+0

Почему? Это миллисекунды с эпохи Unix, формат, используемый JavaScript, например. – CherryDT

ответ

1

Проверьте это:

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

Вы можете попробовать это -

import time 
import datetime 

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

Это даст неправильный номер, это секунды вместо миллисекунд, как задал OP. – CherryDT

+1

OP должен указывать явно. –

+0

Это ясно из названия. ОП указывает, на основе примера, как должно работать преобразование: «Как конвертировать 2016.05.09 15:45:45» в 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

Я использую dateutil анализатор, как это предлагает некоторую гибкость, но другие могут не согласиться

В [1]:

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

Из [1]:

1462830345000.0 

'dateparse' возвращает объект datetime.datetime:

В работе [2]:

dateparse(datetest) 

Из [2]:

datetime.datetime(2016, 5, 9, 15, 45, 45) 
Смежные вопросы