Sco*_*McC 3 python datetime timedelta
time.sleep方法让脚本进入睡眠状态,直到下一小时开始我已经使用datetime库整理了一个相当粗略的解决方案(添加两分钟以确保安全)
import datetime
# Determine the seconds until the next hour (add 2 minutes to be safe)
now = datetime.datetime.now()
next_hour = datetime.datetime(now.year, now.month, now.day, now.hour + 1, 2)
sleep_seconds = (next_hour - now).seconds
# Put the execution to sleep for a while
print("Sleeping for {0} minutes...".format(sleep_seconds // 60))
time.sleep(sleep_seconds)
Run Code Online (Sandbox Code Playgroud)
此脚本确实有效,但在下一小时是第二天的开始时不可靠。
datetime 期望小时值介于 0..23 datetime.datetime.now()方法返回23该方法将失败,如果你传递24给datetime对象有人可以提出一个更好的解决方案来解决这些环绕问题吗?
datetime.timedelta在这种情况下,想想会帮助你。像这样的东西:
import datetime
delta = datetime.timedelta(hours=1)
now = datetime.datetime.now()
next_hour = (now + delta).replace(microsecond=0, second=0, minute=2)
wait_seconds = (next_hour - now).seconds
Run Code Online (Sandbox Code Playgroud)
本replace应努力圆你到下一个小时。
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |