我正在尝试使用strptime函数中的空字符串来匹配时区。 Howevr,出现以下错误。

ValueError: time data 'Thu Apr 14 01:46:29 MDT 2016' does not match format '%a %b %d %H:%M:%S   %Y'


这是我尝试的代码。

import datetime

d = datetime.datetime.strptime('Thu Apr 14 01:46:29 MDT 2016', '%a %b %d %H:%M:%S   %Y')


如何在python中映射时区?
时区可以是MDT,MST等。

最佳答案

要解析此特定格式(类似于电子邮件中使用的RFC 822),可以使用email软件包:

from email.utils import parsedate_tz, mktime_tz

time_tuple = parsedate_tz('Thu Apr 14 01:46:29 MDT 2016')
posix_time = mktime_tz(time_tuple)


注意:此处的MDT是-6小时(according to the rfc 822)。通常,时区abbreviations may be ambiguous

在Python 3.3+上,您可以直接创建一个时区感知日期时间:

from email.utils import parsedate_to_datetime

dt = parsedate_to_datetime('Thu Apr 14 01:46:29 MDT 2016')


这是how to parse it on earlier Python versions

关于python - 值错误与格式不符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37263178/

10-12 23:15