【发布时间】:2021-06-20 00:31:43
【问题描述】:
我有这张支票
if is_time_between(time(6,59,45), time(18,10)):
我想检查当前时间是否在我传入的两次之间。我想我很接近。
#from datetime import timezone, datetime, timedelta
from datetime import datetime, time
#import time
import pytz
import dateutil.parser
#from pytz import timezone
def is_time_between(begin_time, end_time):
tz = pytz.timezone('Australia/Sydney')
check_time = datetime.time(tz)
if begin_time < end_time:
return check_time >= begin_time and check_time <= end_time
else: # crosses midnight
return check_time >= begin_time or check_time <= end_time
我在使用 import 和 froms 时遇到了多个错误,但当前的错误是:
descriptor 'time' requires a 'datetime.datetime' object but received a 'Australia/Sydney'
【问题讨论】:
-
查看您的导入。使用
datetime.now(tz) -
啊,是的,我曾经尝试过,它导致了这个错误
'>=' not supported between instances of 'datetime.datetime' and 'datetime.time'question updated* -
确保您没有将苹果与梨进行比较 - 因此在比较中仅使用
datetime.datetime对象或datetime.time对象,而不是混合使用。请注意,这与 pytz 或 UTC(时区)没有直接关系。 -
@MrFuppes 我也试过了,但得到了那个错误。问题已更新*我想知道传递的正确内容是什么。
-
旁注:使用 Python 3.9,您可以使用
zoneinfo,这在某些方面比 pytz 更方便 - example。