ada*_*ski 3 python time datetime while-loop timedelta
我希望能够在我的程序中实现一个条件,它只能运行N个小时,也许用户可以指定N,但是我们不能超前.
我想我可以使用datetime.now() 并将下面的值存储在变量中,time
>>> time
>>> time = datetime.datetime(2013, 12, 9, 21, 50, 32, 405329)
Run Code Online (Sandbox Code Playgroud)
关于如何访问( - )之间的第四个字段,看到它是一个字符串的任何想法?
我的条件就像while time != timeEndtimeEnd将是下面的值:
>>> timeEnd = datetime.datetime(2013, 12, 9, 21+N, 50, 32, 405329)
谢谢
now()除非要向本地用户显示,否则不要使用不知道的本地日期时间对象,例如返回的对象.有很多危险.
有一个区别"现在是什么时候?" 和"经过了多少秒?" .前者更容易找到.
要运行N几个小时,您可以:
from time import monotonic as timer # or time.time if it is not available
endtime = timer() + N * 3600
while timer() < endtime:
# do your thing (mind what clocks use sleep(), join(), lock.acquire())
Run Code Online (Sandbox Code Playgroud)
即使计算机时间在程序执行期间手动或由于DST转换而发生变化,它仍然有效.请参阅Rationalpep-418中的部分time.monotonic以了解Python.
您可以根据需要/可用系统选择其他计时器.例如,您可以使用提供更好精度但可能更快溢出的计时器,或者考虑NTP邻接可能提供比本地CPU更好的时钟或系统处于睡眠或暂停时的时间(想象一下您想要发生什么)几小时后打开笔记本封面后).
datetime.now()如果你想在某个当地时间发生某事,无论从现在开始经过多少秒,例如,在7pm任何一天(午夜之前)之后做某事,对象(天真的故障时间)可能会有用:
from datetime import datetime, time
if datetime.now().time() > time(19):
# do something
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |