Python解析超23小时的时分字符串,寻求替代datetime的方案
处理超23小时的“小时:分钟”格式字符串方案
datetime.strptime的%H格式码仅支持0-23的小时数,无法直接解析像236:22这类小时数超标的字符串。以下是两种无需自行处理小时数换算的解决方案:
方案一:使用python-dateutil库的relativedelta
该库的relativedelta类支持直接传入任意大小的小时、分钟数值,自动完成时间换算:
- 先安装库:
pip install python-dateutil
- 代码示例:
from dateutil.relativedelta import relativedelta from datetime import datetime # 待解析的时长字符串 myTime = '236:22' # 拆分出小时和分钟 hours, minutes = map(int, myTime.split(':')) # 基准日期 base_date = datetime(2024, 1, 1, 0, 0) # 添加时长到日期 new_date = base_date + relativedelta(hours=hours, minutes=minutes) print(new_date) # 输出:2024-01-10 20:22:00
方案二:使用标准库的timedelta
Python标准库的timedelta同样支持大小时数,会自动将超出24小时的部分换算为天数,无需手动处理:
from datetime import datetime, timedelta myTime = '236:22' hours, minutes = map(int, myTime.split(':')) base_date = datetime(2024, 1, 1, 0, 0) new_date = base_date + timedelta(hours=hours, minutes=minutes) print(new_date) # 输出:2024-01-10 20:22:00
内容的提问来源于stack exchange,提问作者Pere
相关产品推荐
相关产品推荐

