小编典典

如何将增量添加到python datetime.time?

python

从:

http://docs.python.org/py3k/library/datetime.html#timedelta-
objects

timedelta对象代表持续时间,即两个日期或时间之间的差。

那么,为什么我会出错:

>>> from datetime import datetime, timedelta, time
>>> datetime.now() + timedelta(hours=12)
datetime.datetime(2012, 9, 17, 6, 24, 9, 635862)
>>> datetime.now().date() + timedelta(hours=12)
datetime.date(2012, 9, 16)

>>> datetime.now().time() + timedelta(hours=12)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'

阅读 316

收藏
2020-12-20

共1个答案

小编典典

datetime.time对象不支持除了datetime.timedelta秒。

虽然有一个自然的定义,时钟算术。您可以这样计算:

import datetime as dt
now = dt.datetime.now()
delta = dt.timedelta(hours = 12)
t = now.time()
print(t)
# 12:39:11.039864

print((dt.datetime.combine(dt.date(1,1,1),t) + delta).time())
# 00:39:11.039864

dt.datetime.combine(...)将datetime.timet提升到一个datetime.datetime对象,然后添加增量,然后将结果回落到一个datetime.time对象。

2020-12-20