【发布时间】:2018-06-05 11:16:49
【问题描述】:
我已经在这里环顾了一段时间,尝试了所有不同类型的公认答案,但它们与我自己的需求太无关了,而且 90% 需要静态输入当前日期,这是我不想做的事情
上下文
很简单。
获取西班牙的当前时间。
已经设置了一个变量,这是一个约定的开始时间。
已经设置了一个变量,这是一个约定的结束时间。
如果西班牙的当前时间在起止时间之间,则继续保存日志
线程检查了我的问题的解决方案
由于日期时间的静态类型,所有无用、被否决或不相关
Check if time is between two days
Compare if datetime.timedelta is between two values
到目前为止的代码
now_time_uk = datetime.datetime.now()
current_time_spain = now_time + datetime.timedelta(hours=1)
start = datetime.time(10, 50)
end = datetime.time(16, 00)
if current_time_spain >= start or current_time_spain <= end:
print('Start logging')
else:
print('No need to log')
上面的代码是从 S.O 上的一个线程中提取的,这是一个公认的答案,当我运行它时,它给出了一个 TypeError
TypeError: can't compare datetime.datetime to datetime.time
接受的答案代码
now_time_uk = datetime.datetime.now()
print(now_time_uk)
current_time_spain = now_time_uk + datetime.timedelta(hours=1)
start = datetime.time(10, 50)
end = datetime.time(17, 00)
print(current_time_spain.time())
if current_time_spain.time() >= start and current_time_spain.time() <= end:
print('Start logging')
else:
print('No need to log')
【问题讨论】: