我有一个数组,里面填充了表示时间元素的字符串,我试图从这个数组中得到总时间。你知道吗
testArray=['02:30:57','15:09:18','01:00:18']
def arraysum(x):
if (len(x)%2==0):
for i in range (0,len(x)-1,2):
for j in range (1,len(x),2) :
time2=datetime.strptime(x[i],"%H:%M:%S")
time1=datetime.strptime(x[j],"%H:%M:%S")
time1delta=timedelta(hours=time1.hour, minutes=time1.minute, seconds=time1.second)
time2delta=timedelta(hours=time2.hour, minutes=time2.minute, seconds=time2.second)
total=time2delta+time1delta
print (total)
else:
for i in range (0,len(x),2):
for j in range (1,len(x)-1,2) :
time2=datetime.strptime(x[i],"%H:%M:%S")
time1=datetime.strptime(x[j],"%H:%M:%S")
time1delta=timedelta(hours=time1.hour, minutes=time1.minute, seconds=time1.second)
time2delta=timedelta(hours=time2.hour, minutes=time2.minute, seconds=time2.second)
total=time2delta+time1delta
print (total)
arraysum(testArray)
这是我得到的不正确的输出。 17:40:15 下午16:09:36
我需要它显示18:40:15
使用
datetime
模块。使用datetime.timedelta
来增加时间。你知道吗例如:
还有一种方法:
如果你愿意使用pandas,结果会变得容易得多,因为pandas有很多能力将sting解析成更丰富的时间对象。你知道吗
要打印,您有几个选项。
str(total_time)
返回'0 days 18:40:33'
、total_time.isoformat()
返回'P0DT18H40M33S'
、repr(total_time)
返回"Timedelta('0 days 18:40:33')"
。你知道吗如果你不想使用熊猫,你可以做一个小助手函数。你知道吗
相关问题 更多 >
编程相关推荐