#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