You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中带时区的ISO格式日期时间如何转换为指定时间格式?

问题根因

你使用的format参数和原始时间格式不匹配:原始的ISO时间字符串包含T分隔符、毫秒段、末尾时区标识Z,你指定的%Y-%m-%d %H:%M:%S格式无法正确匹配,导致解析异常出现时分秒丢失,或触发pandas默认显示规则隐藏了时分秒部分(实际数据仍存在,可通过df['date'].dt.hour验证)。

最有效的转换方案

pandas原生支持ISO 8601格式的自动识别,无需手动编写复杂格式串,两步即可完成转换:

  • 首先正确解析为datetime类型
# utc=True表示自动识别末尾的Z标识为UTC时区,不需要时区信息可加.dt.tz_localize(None)移除
df['date'] = pd.to_datetime(df['date'], utc=True).dt.tz_localize(None)
  • 再格式化为目标字符串格式
df['date_formatted'] = df['date'].dt.strftime('%Y-%m-%d %H:%M:%S')
大表性能优化方案

如果你的DataFrame数据量超过10万行,可手动指定正确格式串提升解析速度:

# 完全匹配原始ISO格式的format参数
df['date'] = pd.to_datetime(df['date'], format="%Y-%m-%dT%H:%M:%S.%fZ").dt.tz_localize(None)
df['date_formatted'] = df['date'].dt.strftime('%Y-%m-%d %H:%M:%S')

内容的提问来源于stack exchange,提问作者maxokream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:24:05