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

Python使用strptime解析日期时报错时间格式不匹配如何解决

报错原因排查
  • 格式串不匹配带AM/PM的12小时制时间:你声明的格式串包含%f(微秒占位符),但实际待解析的时间字符串没有微秒部分,反而带有PM这类12小时制上下午标识,且你使用的%H是24小时制小时标识,无法匹配12小时制的时间表达
  • 日期列格式不统一:待解析的字段存在两类完全不同的格式,一类是带时分秒+上下午的长日期格式,一类是只有年月日的短日期格式,单一格式串无法覆盖所有取值
解决方法

优先推荐使用pandas内置的日期解析方法,无需手动匹配格式,可自动兼容多格式场景:

import pandas as pd
# 直接传入待解析的列,pandas会自动识别不同格式完成转换
df['DATE'] = pd.to_datetime(df['Transaction_date'])

如果需要手动使用strptime实现解析,可编写兼容多格式的解析函数:

import datetime as dt

def parse_custom_date(date_str):
    try:
        # 匹配带时分秒和上下午的长格式:%I对应12小时制小时,%p对应AM/PM标识
        return dt.datetime.strptime(date_str, '%m/%d/%Y:%I:%M:%S %p')
    except ValueError:
        # 匹配只有年月日的短日期格式
        return dt.datetime.strptime(date_str, '%m/%d/%Y')

df['DATE'] = df['Transaction_date'].apply(parse_custom_date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:36:04