检查两个日期时间对象是否相同

时间:2019-02-08 13:05:16

标签: python python-3.x

import datetime

time = datetime.time(21) 

while True:
    print(datetime.datetime.now())
    if datetime.datetime.now() == time:
        break

我正在尝试设置一个特定时间来运行程序中的功能。不幸的是,循环并没有在预期的2100小时退出。为什么会这样?

3 个答案:

答案 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()方法 获取相应的日期和时间对象,这很方便 合并功能可将日期和时间合并为日期时间。