Python 检查两个datetime对象是否相同
我试图设置一个特定的时间来运行我的程序中的函数。不幸的是,循环并没有像预期的那样在21时结束。为什么会这样?如果您只想比较日期Python 检查两个datetime对象是否相同,python,python-3.x,Python,Python 3.x,我试图设置一个特定的时间来运行我的程序中的函数。不幸的是,循环并没有像预期的那样在21时结束。为什么会这样?如果您只想比较日期 import datetime time = datetime.time(21) while True: print(datetime.datetime.now()) if datetime.datetime.now() == time: break 如果你想确认他们是同一天 文档通常很有用。这通常也是我对python的第一个谷歌
import datetime
time = datetime.time(21)
while True:
print(datetime.datetime.now())
if datetime.datetime.now() == time:
break
如果你想确认他们是同一天
文档通常很有用。这通常也是我对python的第一个谷歌搜索结果。除非您的问题是关于名为“snake”的函数/模块。
datetime模块基本上有三种类型用于存储时间点:
- 年、月、月日的日期
- 小时、分钟、秒、微秒、时区信息的时间
- datetime结合了日期和时间。它有方法date()和time() 获取相应的日期和时间对象,有一个方便的 combine函数可将日期和时间合并为datetime。
import datetime
time = datetime.time(21)
while True:
print(datetime.datetime.now())
if datetime.datetime.now() == time:
break
如果你想确认他们是同一天
文档通常很有用。这通常也是我对python的第一个谷歌搜索结果。除非您的问题是关于名为“snake”的函数/模块。
datetime模块基本上有三种类型用于存储时间点:
- 年、月、月日的日期
- 小时、分钟、秒、微秒、时区信息的时间
- datetime结合了日期和时间。它有方法date()和time() 获取相应的日期和时间对象,有一个方便的 combine函数可将日期和时间合并为datetime。
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
输出:
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
听起来你只是想比较一下时间:
导入日期时间
时间=日期时间。时间(21)
打印(时间)
尽管如此:
打印(datetime.datetime.now())
如果datetime.datetime.now().hour==time.hour:
打破
如果你真的需要写这篇文章,而不是使用内置的系统调度程序,比如。听起来你只是想比较一下时间:
导入日期时间
时间=日期时间。时间(21)
打印(时间)
尽管如此:
打印(datetime.datetime.now())
如果datetime.datetime.now().hour==time.hour:
打破
如果你真的需要写这个,而不是使用内置的系统调度程序,比如。这就是我告诉你要比较
时间
对象的方式吗?!将time
与datetime
进行比较,就像检查21:00:00
是否等于2019-02-08 18:07:53.449365
。很明显,它不会打破这个问题的标题并不准确。你问的是如何比较两个小时而不是datetime对象。最好编辑它以获得相关的答案这就是我是如何告诉你比较时间对象的?!将time
与datetime
进行比较,就像检查21:00:00
是否等于2019-02-08 18:07:53.449365
。很明显,它不会打破这个问题的标题并不准确。你问的是如何比较两个小时而不是datetime对象。最好编辑它以获得相关答案好的答案。您可以稍微简化它,因为datetime对象的hour属性只是一个int,所以不需要创建时间变量。如果条件现在变为如果datetime.datetime.now().hour==21
@ArranDuff您是正确的。我将答案尽可能地与原始答案保持一致,并将优化留给op。好答案。您可以稍微简化它,因为datetime对象的hour属性只是一个int,所以不需要创建时间变量。如果条件现在变为如果datetime.datetime.now().hour==21
@ArranDuff您是正确的。我将答案尽可能地与原始答案保持一致,并将优化留给op。