Python 将字符串转换为包含区域名称的有效日期时间对象

Python 将字符串转换为包含区域名称的有效日期时间对象,python,django,datetime,Python,Django,Datetime,我有以下字符串 date = "Thu May 08 2014 12:06:43 GMT+0300 (EEST)" 如何使用stptime将其转换为有效的python datetime对象 是我干的 datePy = datetime.strptime(date, "%a, %d %b %Y %H:%M:%S (%Z)") 但是没有起作用。追溯 Traceback (most recent call last): File "<stdin>", line 1, in <

我有以下字符串

date = "Thu May 08 2014 12:06:43 GMT+0300 (EEST)"
如何使用stptime将其转换为有效的python datetime对象

是我干的

datePy = datetime.strptime(date, "%a, %d %b %Y %H:%M:%S (%Z)")
但是没有起作用。追溯

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data 'Thu May 08 2014 12:06:43 GMT+0300 (EEST)' does not match format '%a, %d %b %Y %H:%M:%S (%Z)'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/_strtime.py”,第325行,在_strtime中
(数据字符串,格式))
ValueError:时间数据“2014年5月8日星期四12:06:43 GMT+0300(EEST)”与格式“%a,%d%b%Y%H:%M:%S(%Z)”不匹配
对于一些背景细节,我从javascript
date.toString()
函数获取日期字符串,将其发送到django后端,并希望将其转换为python datetime对象,这是一个简单的对象

您没有使用(从错误中可以清楚地看出)。例如,在字符串中不存在的
%a
后面有一个
,而不是
%B
(月份作为区域设置的全名)。尝试:


你说它不起作用是什么意思?发生了什么?编辑了我的帖子并添加了回溯所提供的日期字符串的UTC时间是多少?是
15:06
还是
09:06
?注意:如果EEST代表东欧夏季时间,则似乎
dateutil.parser.parse()
返回错误的
15:06
。我决定采用不同的路径。我只需要本地时间,所以我使用了Date.toutString(),它返回一个可以轻松转换为datetime对象的字符串。我还使用Date.getTimeZoneOffset()来获取以分钟为单位的时差。然后在我看来,我使用timedelta将初始日期时间对象(UTC)转换为本地时间。@J.F.Sebastian UTC的日期字符串为09:06,getTimeZoneOffset()返回-180您需要自己解决,错误非常清楚,我已经向您展示了所需的引用。阅读我给你的参考资料,并将其匹配到正确的格式字符串。例如,从您的示例中不清楚您的月份字符串是否缩写。如果是这样(即“Dec”而不是“december”),您需要使用
%b
而不是
%b
。谢谢。您发送给我的引用有一个返回值错误的%z。感谢您的尝试,希望我能找到答案。.问题是+0300和(EEST),在strTime中没有描述如何转换它们。不管怎样,谢谢。好的,问题在于时区。看一看。赏金的答案推荐这个库:Thx。但我想先看看是否可以在不安装任何其他额外库的情况下解决这个问题。
datePy = datetime.strptime(date, "%a %B %d %Y %H:%M:%S (%Z)")