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

Python:如何将"Fri Jun 05 15:59:14 PDT 2020"转为datetime对象

解决日期字符串转datetime对象的问题

你的问题出在Python标准库strptime的%Z指令对时区缩写(比如PDT)的兼容性上——不同系统的时区数据库支持的缩写有限,尤其是Windows系统,会导致解析失败。以下是几种可行的解决方法:

方法一:使用dateutil.parser自动解析(推荐)

这个第三方库能自动识别大多数日期格式,包括时区缩写,无需手动指定格式:

from dateutil import parser

date_str = "Fri Jun 05 15:59:14 PDT 2020"
dt = parser.parse(date_str)
print(dt)
# 输出:2020-06-05 15:59:14-07:00

需要先安装库:pip install python-dateutil

方法二:手动处理时区(无需第三方库)

如果不想依赖第三方库,可以先剥离时区缩写,解析剩余部分后再手动添加上时区信息:

from datetime import datetime
from zoneinfo import ZoneInfo  # Python 3.9+ 可用;3.9以下版本改用pytz

date_str = "Fri Jun 05 15:59:14 PDT 2020"
# 拆分字符串,移除PDT部分
date_parts = date_str.split()
date_no_tz = ' '.join(date_parts[:3] + date_parts[4:])
# 解析无时区的日期字符串
dt_naive = datetime.strptime(date_no_tz, '%a %b %d %H:%M:%S %Y')
# 添加上时区(PDT对应America/Los_Angeles时区)
dt = dt_naive.replace(tzinfo=ZoneInfo("America/Los_Angeles"))
print(dt)
# 输出:2020-06-05 15:59:14-07:00

如果用pytz,替换ZoneInfo的部分为:

import pytz
dt = dt_naive.replace(tzinfo=pytz.timezone("America/Los_Angeles"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:45:12