首页 > 解决方案 > Python 3.7:将具有不同时区的字符串转换为日期

问题描述

我正在尝试在 Python 中将字符串转换为日期格式。

我正在使用以下语句

datetime_obj = datetime.datetime.strptime("Sun Aug 19 16:24:31 PDT 2018", "%a %b %d %H:%M:%S %Z %Y")

但是,我收到一个错误-

ValueError:时间数据“2018 年 8 月 19 日星期日 16:24:31 PDT”与格式“%a %b %d %H:%M:%S %Z %Y”不匹配

如果我从日期字符串和格式字符串中删除时区,代码就完美了。这让我相信这个问题与时区有关,但我不确定应该采取什么行动。我在东部时区,字符串中的时区在太平洋时区。

感谢您对此的任何帮助。

标签: pythondatetimedate-conversionpython-3.7

解决方案


this answer中所述,您可以为此使用python-dateutil

>>> from dateutil import parser

>>> datetime_obj = parser.parse("Sun Aug 19 16:24:31 PDT 2018")
datetime.datetime(2018, 8, 19, 16, 24, 31)

标准datetime 模块在解析时区时表现得非常奇怪,因为我看到阅读这个与类似问题相关的问题的答案。


推荐阅读