我正在尝试做这样的事情:
time() + timedelta(hours=1)
Run Code Online (Sandbox Code Playgroud)
但是,Python不允许它,显然是有充分理由的.
有没有人有一个简单的工作?
jfs*_*jfs 121
datetime.combine(date.today(), time()) + timedelta(hours=1)
Run Code Online (Sandbox Code Playgroud)
完整示例:
from datetime import date, datetime, time, timedelta
dt = datetime.combine(date.today(), time(23, 55)) + timedelta(minutes=30)
print dt.time()
Run Code Online (Sandbox Code Playgroud)
输出:
00:25:00
Run Code Online (Sandbox Code Playgroud)
res*_*dsk 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'
Run Code Online (Sandbox Code Playgroud)
它可以从PyPi获得nptime("非迂腐时间"),或者在GitHub上:https://github.com/tgs/nptime
该文档位于http://tgs.github.io/nptime/
解决方法:
t = time()
t2 = time(t.hour+1, t.minute, t.second, t.microsecond)
Run Code Online (Sandbox Code Playgroud)
如果您不需要那么高的精度,您也可以省略微秒。
这有点讨厌,但是:
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()
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以将 time() 更改为 now() 以使其正常工作
from datetime import datetime, timedelta
datetime.now() + timedelta(hours=1)
Run Code Online (Sandbox Code Playgroud)