【发布时间】:2014-12-25 21:02:00
【问题描述】:
我有这个功能可以转换例如
timeToSeconds("1:12:45:66.6")
>>>132366.6
但我承认它不遵循 DRY 概念,请查看:
def timeToSeconds(time):
t = time.split(':')
try:
if len(t) == 1:
try:
type(eval(t[0])) in [int, float]
except:
return False
return eval(time)
elif len(t) == 2:
return float(t[-1]) + float(t[-2]) * 60
elif len(t) == 3:
return float(t[-1]) + float(t[-2]) * 60 + float(t[-3]) * 3600
elif len(t) == 4:
return float(t[-1]) + float(t[-2]) * 60 + float(t[-3]) * 3600 + float(t[-4]) * 86400
else:
return False
except:
return False
如何更好地编写它?请注意,当输入包含字符时返回 False。
【问题讨论】:
-
秒怎么比 60 大???
-
是输入h:m:s:ms还是d:h:m:s?
标签: python datetime time dry seconds