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

Python中datetime模块使用及Excel日期导入适配问题

解决Python解析Excel日期时间格式不匹配的问题

这问题我碰到过好多次了,核心就是你用的格式字符串和Excel里的日期格式完全不匹配,所以才会报错。

Excel里的日期格式是11/11/2005 12:00:00 AM,属于月/日/年 + 12小时制时间(带AM/PM标识),而你用的%Y-%m-%d %H:%M:%S对应的是年-月-日 + 24小时制时间,肯定对不上。

正确的格式字符串

你需要把strptime的格式参数改成和Excel日期匹配的:

'%m/%d/%Y %I:%M:%S %p'

各个部分的含义:

  • %m:两位数的月份(01-12)
  • %d:两位数的日期(01-31)
  • %Y:四位数的年份(比如2005)
  • %I:12小时制的小时(01-12,对应AM/PM)
  • %M:两位数的分钟
  • %S:两位数的秒
  • %p:AM/PM标识(Excel里是大写,这个格式符会自动识别)

修改后的完整代码

import datetime

# 从Excel获取的日期字符串
excel_date_str = "11/11/2005 12:00:00 AM"
# 用正确的格式解析
start = datetime.datetime.strptime(excel_date_str, '%m/%d/%Y %I:%M:%S %p')
print(start)
# 输出结果:2005-11-11 00:00:00(自动转成了24小时制的datetime对象)

额外注意事项

  • 如果你的Excel日期里的AM/PM是小写的(比如am/pm),可以先把字符串转成大写再解析:
    excel_date_str = excel_date_str.upper()
    
  • 少数情况下,Excel可能用的是日/月/年格式(比如欧洲地区),如果解析后日期明显不对(比如月份超过12),可以把格式改成'%d/%m/%Y %I:%M:%S %p'试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:27:26