仅将天数和时间(小时 x 分钟 x 秒)转换为时间

Cla*_*tti 2 python datetime python-3.x

我有一个数据框,在其中比较两个不同日期之间的差异以获得小时和分钟的差异,例如:

 start_date = '2018-07-03 16:03:00'
 data_final = '2018-07-05 00:00:00'
 duration = data_final - start_date
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果是'31: 57: 00 ',或者两个日期之间的总时间差。但我得到的结果是:“1 天,7:57:00”(每 24 小时写为 1 天)。

我尝试使用以下语句将其转换为 XMinutesHours 格式:

print (datetime.datetime.strptime (duration, "%H:%M:%S"))
Run Code Online (Sandbox Code Playgroud)

但我得到了错误:

ValueError: 时间数据'1天,7:57:00'与格式'%H:%M:%S'不匹配

任何想法?

EdC*_*ejo 5

您需要计算以小时、分钟和秒为单位的等效值,您可以实现一个函数来获取该值,例如:

from datetime import datetime

def get_duration(duration):
    hours = int(duration / 3600)
    minutes = int(duration % 3600 / 60)
    seconds = int((duration % 3600) % 60)
    return '{:02d}:{:02d}:{:02d}'.format(hours, minutes, seconds)

format_str = '%Y-%m-%d %H:%M:%S'
start_date_str = '2018-07-03 16:03:00'
end_date_str = '2018-07-05 00:00:00'

start_date = datetime.strptime(start_date_str, format_str)
end_date = datetime.strptime(end_date_str, format_str)
duration = (end_date - start_date).total_seconds()

print(get_duration(duration))
Run Code Online (Sandbox Code Playgroud)