【问题标题】:How to check if time is in the range between two days?如何检查时间是否在两天之间?
【发布时间】:2017-11-22 07:26:34
【问题描述】:

我找到了一些很好的例子来检查时间是否在特定范围内,比如这个:

now_time = datetime.datetime.now().time()   
start = datetime.time(17, 30)
end = datetime.time(4, 00)
if start <= now_time <= end:

就我而言,我想检查当前时间是否在早上 17:30 和 04 之间。我该如何解决这个问题?

【问题讨论】:

  • 好吧,您已经发布的代码示例有什么问题?根据你想要的“之间”的哪一边,要么是那个,要么是那个的否定。
  • 它会返回'false'作为结果

标签: python time range


【解决方案1】:

17:30 出现在 4:00 之后,因此任何带有 start &lt;= x &lt;= end 的内容都将评估为 false,因为这意味着 end (4:00) 大于 start (17:30),这绝不是真的。

你必须做的是检查它是超过 17:30 还是在 4:00 之前:

import datetime

now_time = datetime.datetime.now().time()
start = datetime.time(17, 30)
end = datetime.time(4, 00)
if now_time >= start or now_time <= end:
    print('true')
else:
    print('false')

【讨论】:

  • 不是,我想检查时间是否在 17:30 到 04:00 之间,而不是相反。
  • 这不再有效,在 python 2.7 上报告 TypeError
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 2015-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多