【发布时间】:2019-03-03 07:12:11
【问题描述】:
我正在尝试将分钟添加到另一个时间戳。我的代码如下所示
from datetime import datetime
from datetime import timedelta
start_time = '06:52:00'
easy_pace_time = '00:08:15'
tempo_pace_time = '00:07:12'
easy_pace_miles = 2
tempo_pace_miles = 3
FMT = '%H:%M:%S'
easy_strip = datetime.strptime( easy_pace_time, FMT)
easy_strip_seconds = (easy_strip.minute * 60) + easy_strip.second
easy_pace_total = easy_pace_miles * easy_strip_seconds
tempo_strip = datetime.strptime( tempo_pace_time, FMT)
tempo_strip_seconds = ( tempo_strip.minute * 60 ) + tempo_strip.second
tempo_pace_toal = tempo_pace_miles * tempo_strip_seconds
total_running_time = (( easy_pace_total + tempo_pace_toal ) / 60 )
print(total_running_time)
print(str ( timedelta(minutes=total_running_time) ))
# Tried this as well but failed with as directly two timestamps can not be added in Python
#return_time = datetime.strptime(start_time, FMT) + datetime.strptime( str ( timedelta(minutes=total_running_time) ), FMT)
#print(return_time)
datetime.strptime(start_time, FMT) + datetime.timedelta( minutes = total_running_time)
在执行此操作时出现错误
Traceback (most recent call last):
File "C:/Users//Dropbox/Python_code/ThinkPython/timpo_pace_cal.py", line 30, in <module>
datetime.strptime(start_time, FMT) + datetime.timedelta( minutes = total_running_time)
AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'
【问题讨论】:
-
在顶部查看你的导入;你使用了
from datetime import datetime和from datetime import timedelta。这应该为您提供有关如何解决此问题的线索;datetime.timedelta不是这里模块的属性。 -
接下来,您可能不想在这里使用
datetime来处理持续时间。datetime适用于时间点,而不适用于经过一段时间(timedelta对象主要用于移动时间点)。 -
您最好在
:上拆分输入,将数字转换为整数,然后将这些整数相乘以得出总秒数:def parse_duration(duration):、parts = [int(p) for p in duration.split(':')]、@ 987654332@. -
@MartijnPieters,是的,你的 cmets 很有意义。我误解了。谢谢。
-
另外一个不使用
datetime的动机:因为模块期望time是一个时间点,所以格式限制为24 小时制。无法解析超过 24 小时的任何持续时间!我认为在为个人公路/越野/田径比赛或训练跑步计时(人类通常不能连续 24 小时跑步)时,您不会在这里遇到这种情况,但如果您要跟踪,这可能是个问题例如,总运行时间。
标签: python python-3.x datetime