【发布时间】:2014-06-26 14:01:09
【问题描述】:
我目前在一个类似“27:32:18”的专栏中有很多次,这意味着有人在等待 27 小时 32 分 18 秒。每当我尝试解析这些值时,我都会不断收到“ValueError:小时必须在 0..23”。
我应该如何解析这些值或将它们转换为更标准的格式?我尝试了以下作为对单个值的测试:
time1 = "56:42:12"
time2 = time1.split(':')
time2 = [int(n) for n in time2]
time2.insert(0, time2[0] // 24)
time2[1] %= 24
此时time2是一个由[2, 8, 42, 12]组成的列表,相当于2天8小时42分12秒。我将如何以允许 Python 解析它的方式将其转换为以天、小时、分钟和秒为单位的 Python 日期时间表示?请注意,我最终将对这些时间值(代表等待时间)进行无监督聚类。
【问题讨论】:
-
那是不是日期。 持续时间是完全不同的野兽。
-
一个python datetime对象只能用来表示一个特定的时间点;例如1889 年 7 月 31 日。持续时间以
timedelta()对象表示。 -
一个区间需要有一个引用,它是一个增量。只说“2 天 8 小时 42 分钟”而不指定 since 部分,会使 date 部分变得困难。如果您只想计算持续时间,这(就像 Martijn 所说)是另一回事。
-
谢谢!所以使用时间增量而不是日期时间。
标签: python parsing datetime python-3.x