Python中如何正确转换数据库中的ISO日期字符串为日期类型?
解决Python中ISO格式日期字符串转datetime类型的报错问题
错误原因分析
- 第一个格式字符串错误地将
T用单引号包裹,strptime会把包裹的单引号当作需要匹配的字面字符,但你的日期字符串里并没有单引号,导致格式不匹配。 - 第二个格式使用了
yyyy-MM-dd'T'HH:mm:ssZ这种Java风格的占位符,Python的strptime不识别这类写法,必须使用以%开头的Python标准日期格式代码。
正确转换方法
方法1:使用正确的strptime格式字符串
直接保留T作为字面字符,不需要额外加引号,格式代码严格遵循Python规范:
from datetime import datetime date_str = '2022-08-30T11:53:52.204219' dt = datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%S.%f") print(dt) # 输出:2022-08-30 11:53:52.204219
方法2:使用fromisoformat(Python 3.7+推荐)
你的日期字符串符合ISO 8601标准格式,Python 3.7及以上版本可以直接用更简洁的fromisoformat方法,无需手动写格式字符串:
from datetime import datetime date_str = '2022-08-30T11:53:52.204219' dt = datetime.fromisoformat(date_str) print(dt) # 输出:2022-08-30 11:53:52.204219
内容的提问来源于stack exchange,提问作者galaxymini
相关产品推荐
相关产品推荐

