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

该文档位于http://tgs.github.io/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)