擅长:python、mysql、java
<p>你可以这样做:</p>
<pre><code>from datetime import datetime
from threading import Timer
x=datetime.today()
y=x.replace(day=x.day+1, hour=1, minute=0, second=0, microsecond=0)
delta_t=y-x
secs=delta_t.seconds+1
def hello_world():
print "hello world"
#...
t = Timer(secs, hello_world)
t.start()
</code></pre>
<p>这将在第二天凌晨1点执行一个函数(例如hello_world)</p>
<p><strong>编辑:</strong></p>
<p>正如@PaulMag所建议的,一般来说,为了检测是否由于月底的到来而必须重置月份的日期,在本文中y的定义如下:</p>
<pre><code>y = x.replace(day=x.day, hour=1, minute=0, second=0, microsecond=0) + timedelta(days=1)
</code></pre>
<p>使用此修复程序,还需要将timedelta添加到导入中。其他代码行保持不变。因此,使用total_seconds()函数的完整解决方案是:</p>
<pre><code>from datetime import datetime, timedelta
from threading import Timer
x=datetime.today()
y = x.replace(day=x.day, hour=1, minute=0, second=0, microsecond=0) + timedelta(days=1)
delta_t=y-x
secs=delta_t.total_seconds()
def hello_world():
print "hello world"
#...
t = Timer(secs, hello_world)
t.start()
</code></pre>