Как я могу преобразовать строку даты и времени в форме Feb 25 2010, 16:19:20 CET
в эпоху unix?
В настоящее время мой лучший подход - использовать time.strptime()
:
def to_unixepoch(s):
# ignore the time zone in strptime
a = s.split()
b = time.strptime(" ".join(a[:-1]) + " UTC", "%b %d %Y, %H:%M:%S %Z")
# this puts the time_tuple(UTC+TZ) to unixepoch(UTC+TZ+LOCALTIME)
c = int(time.mktime(b))
# UTC+TZ
c -= time.timezone
# UTC
c -= {"CET": 3600, "CEST": 2 * 3600}[a[-1]]
return c
Из других вопросов я вижу, что можно было бы использовать calendar.timegm()
и pytz
среди других, чтобы упростить это, но они не обрабатывают сокращенные часовые пояса.
Мне нужно решение, которое требует минимального количества лишних библиотек, я предпочитаю придерживаться стандартной библиотеки, насколько это возможно.