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

pandas转换含时区缩写的时间字符串为datetime时格式不匹配如何解决

Pandas解析带PST/PDT后缀时间字符串报错解决方案

报错核心原因

%Z是Python标准库strptime提供的时区缩写解析占位符,它仅能识别当前运行环境的本地时区缩写,对于PST/PDT这类美国太平洋时区的缩写,在非美区环境中默认无法匹配,因此会抛出格式不匹配的报错。

最简处理方案

  • 方案1:统一忽略时区后缀后指定规范时区(最推荐)
    所有时间都属于美国太平洋时区,PST/PDT只是冬令时/夏令时的不同标识,IANA规范时区America/Los_Angeles会自动处理夏令时转换,不需要单独识别后缀:
    # 去除末尾的(PDT)/(PST)后缀
    dftest_clean = dftest.str.replace(r'\s*\([PDE]T\)$', '', regex=True)
    # 转换为datetime后指定太平洋时区
    dftest_datetime = pd.to_datetime(dftest_clean, format='%Y-%m-%d %H:%M:%S').dt.tz_localize('America/Los_Angeles')
    
  • 方案2:让pandas自动解析格式
    不指定format参数,pandas会自动调用dateutil解析器,对这类常见时区缩写的识别兼容性更高,适合数据量不大的场景:
    dftest_datetime = pd.to_datetime(dftest)
    

注意:不要直接用PST/PDT作为时区参数传入,这类缩写存在全局歧义(例如PST也可指代菲律宾标准时间),使用IANA规范时区名America/Los_Angeles是兼容性最高的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:15:10