使用datetime.strptime解析时间字符串"2020-11-13 09:18:35+00:00"的正确格式咨询
正确格式与可运行代码
from datetime import datetime # 正确解析代码 parsed_time = datetime.strptime("2020-11-13 09:18:35+00:00", "%Y-%m-%d %H:%M:%S%z") # 输出结果示例:datetime.datetime(2020, 11, 13, 9, 18, 35, tzinfo=datetime.timezone.utc)
之前写法的错误说明
你之前的写法存在两个核心问题:
- 使用了其他语言的日期格式规则:
yyyy、MM、dd、ff这类占位符是Java、JavaScript等语言的日期格式语法,Python标准库的datetime.strptime仅识别带%前缀的专属格式占位符。 - 错误拆分时区偏移字段:UTC偏移(如示例中的
+00:00)是一个独立的整体字段,不需要手动书写前面的+符号,也不需要拆分两个占位符分别匹配偏移的小时和分钟,直接用%z即可一次性匹配完整的偏移内容,且可自动兼容正、负两种偏移格式。
格式符对应关系
%Y:匹配4位完整年份,对应字符串中的2020%m:匹配2位数字月份,对应11%d:匹配2位数字日期,对应13%H:匹配24小时制的2位小时数,对应09%M:匹配2位分钟数,对应18%S:匹配2位秒数,对应35%z:匹配UTC时区偏移,自动识别从正负号开始的±HH:MM格式内容
版本兼容性提醒
注意:
%z支持带冒号的时区偏移格式(如+00:00)是Python 3.7及以上版本的特性,若使用Python 3.6及更低版本,需要先手动移除偏移部分的冒号(将+00:00转换为+0000)再解析,或自行手动关联时区信息。
内容的提问来源于stack exchange,提问作者akore128
相关产品推荐
相关产品推荐

