如何添加delta到python datetime.time? [英] How to add delta to python datetime.time?
问题描述
From:
http://docs.python.org/py3k/library/datetime.html#timedelta-objects
timedelta对象表示持续时间,两个
日期或时间之间的差异。
A timedelta object represents a duration, the difference between two dates or times.
所以为什么我会收到错误:
So why i get error with this:
>>> 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'
推荐答案
datetime.time
对象不支持添加 datetime.timedelta
s。
datetime.time
objects do not support addition with datetime.timedelta
s.
虽然有一种自然的定义,但是时钟算术。
您可以这样计算:
There is one natural definition though, clock arithmetic. You could compute it like this:
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.time t
到 datetime.datetime
对象,然后添加增量,并将结果下降回 datetime.time
对象。
dt.datetime.combine(...)
lifts the datetime.time t
to a datetime.datetime
object, the delta is then added, and the result is dropped back down to a datetime.time
object.
这篇关于如何添加delta到python datetime.time?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!