我已经看到了一些想要相同的问题,除了在我的情况下,时间格式并不总是hh:mm:ss,有时它只是mm:ss
我理解这里提到的想法如何在Python中将H:MM:SS时间字符串转换为秒?在这里Python时间转换h:m:s到秒
我不明白的是如何处理像hh:mm:ss,h:mm:ss,mm:ss或者m:ss这样的情况
def getSec(s):
l = s.split(':')
return int(l[0]) * 3600 + int(l[1]) * 60 + int(l[2])
Run Code Online (Sandbox Code Playgroud)
编辑:我认为我的问题不够明确.我正在寻找一种解决方案来处理所有可能的格式与单一功能.
def getSec(s):
l = map(int, s.split(':')) # l = list(map(int, s.split(':'))) in Python 3.x
return sum(n * sec for n, sec in zip(l[::-1], (1, 60, 3600)))
getSec('20') # 20
getSec('1:20') # 80
getSec('1:30:01') # 5401
Run Code Online (Sandbox Code Playgroud)