如何将24小时制字符串时间转换为可用于比较的时间格式?
24小时制时间字符串转时间格式并比较的解决方案
- 处理像"23:20"这类24小时制时间字符串,直接用
strptime()函数搭配格式符%H:%M就能转成可用于比较的时间对象,其中%H对应24小时制的小时(00-23),%M对应分钟(00-59)。 - 简单代码示例:
from datetime import datetime # 转换24小时制时间字符串 time_str = "23:20" time_obj = datetime.strptime(time_str, "%H:%M").time() # 直接进行时间比较 another_time = datetime.strptime("22:10", "%H:%M").time() print(time_obj > another_time) # 输出True
- 如果只需要时间部分(不需要日期),转换后调用
.time()提取纯时间对象,这样比较时只会对比时、分,不会被日期干扰。 - 要是需要同时兼容12小时制(比如"12:00PM")和24小时制的输入,可以写个简单的兼容函数:
from datetime import datetime def parse_time(time_str): if "AM" in time_str.upper() or "PM" in time_str.upper(): return datetime.strptime(time_str, "%I:%M%p").time() else: return datetime.strptime(time_str, "%H:%M").time() # 测试两种格式 print(parse_time("12:00PM")) # 输出12:00:00 print(parse_time("23:20")) # 输出23:20:00
内容的提问来源于stack exchange,提问作者mackay2000
相关产品推荐
相关产品推荐

