Преобразование строки в метку времени python

#python #list #datetime #timestamp

Вопрос:

Я пытаюсь преобразовать список str в список меток времени, а затем хочу создать список дельты времени меток времени с помощью total_seconds()

 from datetime import datetime 
a = ['091122333','092222222','093333333']
for i in a:
    datetime.strptime(str(i),'%H:%M:%S.%f')
print(a)
 

Он показывает код ошибки временных данных «091122333» не соответствует формату «%H:%M:%S.%f’

Я хочу сделать отметку времени 09(%H)11(%M)22(%S)333(%F), если это возможно. Не могли бы вы дать мне совет выше?

Большое спасибо…

Комментарии:

1. Не могли бы вы объяснить, что вы сделали в этом своем фрагменте кода? Какова цель str(i) и что происходит с возвращаемым значением datetime.strptime?

2. Извини, я ошибся… Я имел в виду для i в a: затем str(i).

3. он показывает код ошибки : данные о времени ‘091122333’ не соответствуют формату ‘%H:%M:%S.%f’

4. пожалуйста, сначала ознакомьтесь с документами. особенно strftime() и strptime() Поведение .

Ответ №1:

Сначала вы должны изменить представление ( у вас есть : , которого нет в списке строк a ) и то, как вы управляете тем, что возвращается из datetime.strptime (вы должны сохранить значение во время перебора списка), вот так:

 from datetime import datetime 
a = ['091122333','092222222','093333333']
for t in range(len(a)):
    a[t] = datetime.strptime(a[t],'%H%M%S%f')
delta = a[1]-a[0] 
print(delta.total_seconds())
 

Ответ №2:

Формат, в который передается strptime , должен представлять формат, используемый в строке (в вашей строке нет двоеточий).:

 from datetime import datetime
a = ['091122333', '092222222', '093333333']

for i in a:
    dt = datetime.strptime(str(i), '%H%M%S%f')
    print(dt)
 

Из:

 1900-01-01 09:11:22.333000
1900-01-01 09:22:22.222000
1900-01-01 09:33:33.333000