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

如何解析带WET时区的日期时间字符串?解决strptime匹配报错问题

解决datetime.strptime解析带WET时区的报错

Python标准库的datetime.strptime里的%Z指令对时区缩写支持有限,仅能识别系统本地时区的标准缩写,WET(西欧时间)这类缩写不在默认匹配列表中,所以会触发格式不匹配的报错。

方案1:手动处理时区信息

仅解析日期时间(忽略时区)

如果不需要保留时区信息,可以直接剥离字符串中的时区部分:

import datetime

document_updated_on = '01-Feb-2024#15:22 WET'
# 拆分字符串,只保留日期时间部分
dt_segment = document_updated_on.split(' ')[0]
format_str = "%d-%b-%Y#%H:%M"
updated_on_date = datetime.datetime.strptime(dt_segment, format_str)
print(updated_on_date)

保留时区信息

手动映射时区缩写到对应的UTC偏移,构建带时区的datetime对象:

import datetime

document_updated_on = '01-Feb-2024#15:22 WET'
# 拆分日期时间字符串和时区缩写
dt_str, tz_abbr = document_updated_on.split(' ')
format_str = "%d-%b-%Y#%H:%M"
dt = datetime.datetime.strptime(dt_str, format_str)

# 定义时区缩写与UTC偏移的映射
tz_mapping = {
    'WET': datetime.timezone.utc,
    'WEST': datetime.timezone(datetime.timedelta(hours=1))
}
# 为datetime对象添加时区信息
dt_with_timezone = dt.replace(tzinfo=tz_mapping[tz_abbr])
print(dt_with_timezone)

方案2:使用第三方库简化解析

python-dateutil的parser模块支持更多时区缩写,无需手动指定格式:

  1. 先安装库:
pip install python-dateutil
  1. 解析代码:
from dateutil import parser

document_updated_on = '01-Feb-2024#15:22 WET'
# 将#替换为空格,提升parser的识别兼容性
updated_on_date = parser.parse(document_updated_on.replace('#', ' '))
print(updated_on_date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:37:10