import datetime
time = datetime.time(21)
while True:
print(datetime.datetime.now())
if datetime.datetime.now() == time:
break
我正在尝试设置一个特定时间来运行程序中的功能。不幸的是,循环并没有在预期的2100小时退出。为什么会这样?
答案 0 :(得分:3)
听起来您只想比较小时:
import datetime
time = datetime.time(21)
print(time)
while True:
print(datetime.datetime.now())
if datetime.datetime.now().hour == time.hour:
break
那是如果您真的需要编写此代码,而不是使用cron之类的内置系统调度程序。
答案 1 :(得分:0)
import datetime
# set the datetime you want the loop to break out
# datetime.datetime(year, month, date, hour, seconds)
set_dt = datetime.datetime(2019, 2, 8, 18, 19)
while True:
print("set date time:", set_dt)
print(datetime.datetime.now())
# check if the current date time is greater than the set_dt
if datetime.datetime.now() > set_dt:
break
print("out of loop")
输出:
.
.
.
set date time: 2019-02-08 18:19:00
2019-02-08 18:18:59.999428
set date time: 2019-02-08 18:19:00
2019-02-08 18:18:59.999428
set date time: 2019-02-08 18:19:00
2019-02-08 18:18:59.999428
out of loop
编辑:
如果您只希望某个小时后循环中断:
if datetime.datetime.now().hour == set_dt.hour:
break
答案 2 :(得分:-1)
如果您只想比较日期,
yourdatetime.date() < datetime.today().date()
或者很明显
yourdatetime.date() == datetime.today().date()
如果要检查日期是否相同。
文档通常会很有帮助。通常,它也是python Thing_i_have_a_question_about的第一个Google搜索结果。除非您的问题与名为“ snake”的功能/模块有关。
基本上,datetime模块具有三种存储时间点的类型:
年,月,日的日期
时间(小时,分钟,秒,微秒,时区信息)
datetime组合日期和时间。它具有date()和time()方法 获取相应的日期和时间对象,这很方便 合并功能可将日期和时间合并为日期时间。