Python - 当格式不一致时,将经过的时间转换为秒

1 投票
1 回答
578 浏览
提问于 2025-04-17 22:59

我正在尝试计算给定时间字符串经过了多少秒。这些时间字符串并不总是一致的。

举个例子:

'01:02' 表示 1 分钟 2 秒 = 62 秒

'1-11:01:02' 表示 1 天 11 小时 1 分钟 2 秒 = 126062 秒

我试过使用 time.strptime,但没有找到一个优雅的方法来完成这个操作。有没有什么好的建议?

1 个回答

1

一种方法是把所有可能的格式放在一个数组里,然后把时间字符串和这些格式进行比较:

 time_formats = ["%m-%d:%H:%M","%H:%M"]
 time_val = None

 for fmt in time_formats:
    try:
      time_val = time.strptime(time_str,fmt)
    except:
      pass

 if time_val is None:
      print "No matching format found"

这种尝试-捕获的结构符合Python中的EAFP原则。你可以在这里了解更多:http://docs.python.org/2/glossary.html

撰写回答