本文详解如何在 python 中将数据库返回的 `'yyyy-mm-dd hh:mm:ss'` 类型字符串(如 `'2025-01-26 00:39:24'`)安全、准确地解析并转换为符合 sitemap `
在构建 Python 网站地图(sitemap)生成器时,
推荐使用 dateutil.parser.parse() —— 它能智能识别多种常见日期字符串格式,并默认将无时区时间解释为本地系统时区,再通过 .astimezone() 统一转换为本地时区带偏移的 datetime 对象,最后调用 .isoformat() 生成标准 ISO 字符串。
✅ 正确示例代码如下:
from dateutil import parser import datetime # 假设这是从 MySQL 查询得到的时间字符串 db_timestamp = "2025-01-26 00:39:24" # 步骤1:解析字符串为 naive datetime(无时区) dt_naive = parser.parse(db_timestamp) # 步骤2:绑定本地时区并标准化为带偏移的 aware datetime dt_aware = dt_naive.astimezone() # 步骤3:去除微秒(Sitemap 规范要求秒级精度) dt_clean = dt_aware.replace(microsecond=0) # 步骤4:输出 ISO 8601 格式(含时区,如 2025-01-26T00:39:24+03:30) iso_lastmod = dt_clean.isoformat() print(iso_lastmod) # 输出示例:2025-01-26T00:39:24+03:30
⚠️ 注意事项:
总结:dateutil.parser.parse() 是处理不规范日期字符串的首选工具;结合 .astimezone().replace(microsecond=0).isoformat() 三步链式调用,即可稳定输出 Sitemap 兼容的 ISO 8601