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

dateutil parser解析时区异常:GMT+0200为何转为-02:00?

解决dateutil.parser解析GMT时区符号反转的问题

这是dateutil.parser在旧版本里的一个已知bug!我之前也碰到过类似的问题,给你详细解释下原因和解决办法:

问题原因

在python-dateutil 2.8.0之前的版本中,parser处理GMT+xxxxx这种格式的时区字符串时,存在符号反转的逻辑错误:

  • 输入里的GMT+0200本来表示比UTC早2小时(东二区,对应CEST时区),但旧版本的parser会错误地将其解析为比UTC晚2小时(西二区,即偏移量-02:00)。
  • 这个问题是因为解析模块对GMT前缀的时区偏移符号处理逻辑出现了颠倒,属于官方已确认的历史bug。

解决方案

1. 升级python-dateutil到最新版本(推荐)

直接升级到2.8.0及以上版本,官方已经修复了这个时区解析的bug。升级命令如下:

pip install --upgrade python-dateutil

升级后再运行你的原代码:

from dateutil import parser
input_date = "Tue May 01 2018 13:23:00 GMT+0200 (CEST)"
print(parser.parse(input_date))

就能得到正确的输出:2018-05-01 13:23:00+02:00

2. 手动预处理输入字符串(无法升级时适用)

如果暂时无法升级依赖版本,可以手动修改输入字符串,移除GMT前缀,只保留正确的时区符号和偏移量:

from dateutil import parser
input_date = "Tue May 01 2018 13:23:00 GMT+0200 (CEST)"
# 替换GMT+为+,GMT-为-,修正时区符号解析
processed_date = input_date.replace("GMT+", "+").replace("GMT-", "-")
parsed_date = parser.parse(processed_date)
print(parsed_date)  # 输出:2018-05-01 13:23:00+02:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:27:31