Я работаю с датами, полученными из mongoDB, однако, они не все в одном формате . Они бывают трех разных форматов:
1. '%H:%M:%S' (Hours:Minutes:Seconds)
2. '%H:%M:%S.f' (Hours:Minutes:Seconds:Milliseconds)
3. Days.Hours:Minutes:Seconds:Milliseconds
Я хочу рассчитать общее время для всех записей из базы данных. Даты хранятся в строковом формате, поэтому я использую функцию strptime для извлечения объекта времени, затем создаю timedelta, используя этот объект времени, чтобы я мог добавить все это:
formats = ('%H:%M:%S', '%%H:%M:%S.f', <3rd format here>)
for db_item in db_collection:
for fmt in formats:
try:
temp = datetime.strptime(db_item, fmt)
temp = datetime.timedelta(hours=temp.hour,
minutes=temp.minute,
seconds=temp.minute,
milliseconds=(temp.microsecond / 1000)
return temp
except ValueError as e:
Проблема, однако, заключается в том, что 3-й формат, о котором я упоминал ранее, определяет n дней перед '.', поэтому я не знаю, как написать строку формата даты для этого формата.
пример
1.01:20:40.97
означает: 1 день (24 часа), 1 час, 20 минут, 40 секунд и 97 миллисекунд
что я Я стремлюсь к: 25: 20: 40.97 (24 часа + 1 час)
Есть ли формат, который позволяет это сделать? или я должен извлечь n дней отдельно, умножить на 24 и добавить вручную позже?