gpt4 book ai didi

python - 使用大于 24 小时的时间值

转载 作者:行者123 更新时间:2023-12-01 22:48:25 33 4
gpt4 key购买 nike

如何在 Python 中处理大于 24 小时的时间段?我看了datetime.time对象,但这似乎是为了处理一天中的时间,而不是一般时间。

datetime.time0 <= hour < 24的要求如果你想记录超过 24 小时的时间,这就没用了,除非我遗漏了什么?

例如,我想计算某人的总工作时间。我知道他们单独完成任务所花费的时间。我应该使用什么类来安全地计算总时间。

我的输入数据看起来像这样:

# The times in HH:MM:SS
times = ["16:35:21", "8:23:14"]
total_time = ? # 24:58:35

最佳答案

不幸的是,没有内置的方法来构造 timedeltas来自字符串(例如 datetime 对象的 strptime()),因此我们必须构建一个解析器:

>>> from datetime import timedelta
>>> import re

>>> def interval(s):
"Converts a string to a timedelta"
d = re.match(r'((?P<days>\d+) days, )?(?P<hours>\d+):'
r'(?P<minutes>\d+):(?P<seconds>\d+)', str(s)).groupdict(0)
return timedelta(**dict(((key, int(value)) for key, value in d.items())))

>>> times = ["16:35:21", "8:23:14"]
>>> print sum([interval(time) for time in times])
1 day, 0:58:35

编辑:旧的错误答案(我误读了问题):

如果减去日期时间,您会得到 timedelta对象:

>>> import datetime as dt

>>> times = ["16:35:21", "8:23:14"]
>>> fmt = '%H:%M:%S'
>>> start = dt.datetime.strptime(times[1], fmt )
>>> end = dt.datetime.strptime(times[0], fmt)
>>> diff = (end - start)

>>> diff.total_seconds()
29527.0

>>> (diff.days, diff.seconds, diff.microseconds)
(0, 29527, 0)

>>> print diff
8:12:07

关于python - 使用大于 24 小时的时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18303301/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com