Этот формат содержит миллисекунды, поэтому он не может быть проанализирован time.strptime
.Я решил разделить по последнему двоеточию, проанализировать левую часть и вручную преобразовать правую часть, сложить их вместе.
A = '2019-02-12 15:01:45:145'
B = '2019-02-12 15:02:02:22'
import time
def parse_date(s):
date,millis = s.rsplit(":",1)
return time.mktime(time.strptime(date,"%Y-%m-%d %H:%M:%S")) + int(millis)/1000.0
print(parse_date(A))
print(parse_date(B))
отпечатки:
1549958505.145
1549958522.022
теперь сравниваем результатывместо того, чтобы печатать их, чтобы получить то, что вы хотите
Если ваше соглашение по миллисекундам отличается (например: здесь 22
может также означать 220
), то оно немного отличается.Пэд с нулями справа, затем анализ:
def parse_date(s):
date,millis = s.rsplit(":",1)
millis = millis+"0"*(3-len(millis)) # pad with zeroes
return time.mktime(time.strptime(date,"%Y-%m-%d %H:%M:%S")) + int(millis)/1000.0
, в таком случае результат его:
1549958505.145
1549958522.22