我正在尝试做这样的事情:
time() + timedelta(hours=1)
但是,Python不允许它,显然是有充分理由的.
有没有人有一个简单的工作?
在Python中将N秒添加到datetime.time的标准方法是什么?
jfs.. 121
解决方案位于您在问题中提供的链接中:
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
感觉有点像通过无关信息增强数据的解决方法.如果`today()`是切换到夏令时的前一天,timedelta延伸到不同的时区会发生什么?此代码是否受区域设置影响? (4认同)
@ bluenote10实用性超越纯洁.我怀疑`datetime.MAXYEAR`将在9999年保持9999. (3认同)
rescdsk.. 10
如果值得为你的项目添加另一个文件/依赖项,我只写了一个小的类,它扩展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/
解决方案位于您在问题中提供的链接中:
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()