我正在尝试用strptime函数中的空字符串匹配时区。但是,我得到以下错误。
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
小时(根据rfc 822)。一般来说,时区缩写可能不明确。
在Python 3.3+上,您可以直接创建一个时区感知日期时间:
from email.utils import parsedate_to_datetime
dt = parsedate_to_datetime('Thu Apr 14 01:46:29 MDT 2016')
以下是如何在早期的Python版本上解析它。