python时间+ timedelta等效
我正在尝试做这样的事情:
time() + timedelta(hours=1)
然而, Python不允许它 ,显然是有原因的。
有没有人有一个简单的工作?
有关:
- 在Python中为datetime.time添加N秒的标准方式是什么?
该解决scheme位于您在问题中提供的链接中 :
datetime.combine(date.today(), time()) + timedelta(hours=1)
完整的例子:
from datetime import date, datetime, time, timedelta dt = datetime.combine(date.today(), time(23, 55)) + timedelta(minutes=30) print dt.time()
输出:
00:25:00
如果值得添加另一个文件/依赖项到你的项目中,我只写了一个小的类来扩展datetime.time
和算术能力。 如果你午夜过去,它只是绕过:
>>> from nptime import nptime >>> from datetime import timedelta >>> afternoon = nptime(12, 24) + timedelta(days=1, minutes=36) >>> afternoon nptime(13, 0) >>> str(afternoon) '13:00:00'
它可以从PyPi作为nptime
(“非迂腐时间”),或在GitHub: https : //github.com/tgs/nptime
这有点讨厌,但是:
from datetime import datetime, timedelta now = datetime.now().time() # Just use January the first, 2000 d1 = datetime(2000, 1, 1, now.hour, now.minute, now.second) d2 = d1 + timedelta(hours=1, minutes=23) print d2.time()
解决方法:
t = time() t2 = time(t.hour+1, t.minute, t.second, t.microsecond)
如果你不需要那么多的精度,你也可以省略微秒。
您可以将time()更改为now()以使其正常工作
from datetime import datetime, timedelta datetime.now() + timedelta(hours=1)