datetime.datetime与datetime.time无法直接比较,求解决方法
解决方案:datetime与time类型的时间比较问题
问题核心是datetime.datetime和datetime.time属于不同类型,无法直接比较,必须统一类型后再进行判断,以下是两种可行方案:
方案1:将datetime转为time类型提取时间部分
直接从current_time中提取仅包含时分秒的time对象,再和start_time、end_time比较,适合只关注时间点(不涉及日期)的场景:
import datetime current_time = datetime.datetime.now() start_time = datetime.time(9, 0) end_time = datetime.time(18, 0) # 提取datetime的time部分 current_time_part = current_time.time() if start_time < current_time_part < end_time: print("当前时间在指定时间段内") else: print("当前时间不在指定时间段内")
方案2:将time转为datetime类型结合日期
把start_time和end_time与current_time的日期组合成完整的datetime对象,适合需要结合日期判断的场景(比如跨天的时间范围):
import datetime current_time = datetime.datetime.now() start_time = datetime.time(9, 0) end_time = datetime.time(18, 0) # 用current_time的日期拼接time,生成datetime对象 combined_start = datetime.datetime.combine(current_time.date(), start_time) combined_end = datetime.datetime.combine(current_time.date(), end_time) if combined_start < current_time < combined_end: print("当前时间在指定时间段内") else: print("当前时间不在指定时间段内")
内容的提问来源于stack exchange,提问作者code_wizard3199
相关产品推荐
相关产品推荐

