具有 UTC 偏移量和时区的字符串的 UNIX 超时

UNIX time out of a string with UTC offset and time zone

我想根据 Python 中的字符串计算 UNIX 时间。我的字符串在括号中包含 UTC 偏移量和时区,如下所示。

时区 (PDT) 很麻烦,因为我的代码在那之前一直有效。 datestring1 已正确转换,但 datestring2 未正确转换。

import time
import datetime

datestring1 = "Mon, 14 May 2001 16:39:00 -0700"
datestring2 = "Mon, 14 May 2001 16:39:00 -0700 (PDT)"
time.mktime(datetime.datetime.strptime(datestring1, "%a, %d %b %Y %H:%M:%S %z").timetuple())
time.mktime(datetime.datetime.strptime(datestring2, "%a, %d %b %Y %H:%M:%S %z (%Z)").timetuple())

您可以使用 python-dateutil。看看这里的答案:Python strptime() and timezones?

似乎其他人在使用 %Z 解析时区名称时也遇到了问题。

你的情况是:

import time
import datetime
from dateutil import parser

datestring1 = "Mon, 14 May 2001 16:39:00 -0700"
datestring2 = "Mon, 14 May 2001 16:39:00 -0700 (PDT)"

print(time.mktime(parser.parse(datestring1).timetuple()))
print(time.mktime(parser.parse(datestring2).timetuple()))