如何修复datetime.strptime时区偏移格式不匹配的ValueError?
问题解决:Python datetime.strptime匹配单小时时区偏移
你的问题确实出在时区偏移部分:
%z格式符要求时区偏移必须是±HHMM或±HH:MM格式(例如-0400或-04:00),但你的字符串里是-4这种仅单小时数的简化格式,所以直接用%z会匹配失败。
给你两种可行的修改方案:
方案一:手动补全时区格式
先把字符串中的-4补全为符合%z要求的-0400,再用原格式解析:
from datetime import datetime d = '2024-04-04 12:00:00.123-4' # 拆分字符串,补全市区为两位小时+00分钟 if '-' in d: main_part, tz_hour = d.rsplit('-', 1) if tz_hour.isdigit(): d = f"{main_part}-{tz_hour.zfill(2)}00" date = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f%z') print(date)
方案二:使用dateutil自动解析
第三方库python-dateutil的解析器支持这种简化时区格式,无需手动处理:
- 先安装库:
pip install python-dateutil
- 代码实现:
from dateutil import parser d = '2024-04-04 12:00:00.123-4' date = parser.parse(d) print(date)
内容的提问来源于stack exchange,提问作者Anna Ortega
相关产品推荐
相关产品推荐

