Я пытаюсь разобрать список рассылки Apache Pig . При анализе дат я использую следующую функцию.
from datetime import datetime
def str_to_date(date_str):
# First, remove the (UTC) type of parts at the end
try:
date_str = date_str[: date_str.index("(") - 1]
except ValueError:
pass
# Then, try different date formats
for date_format in [
"%a, %d %b %Y %H:%M:%S %z",
"%a %b %d %Y %H:%M:%S %z",
"%a %b %d %H:%M:%S %Y %z",
"%d %b %Y %H:%M:%S %z",
]:
try:
return datetime.strptime(date_str, date_format)
except ValueError:
pass
raise ValueError("No valid date format found for {}".format(date_str))
В 201201.mbox возникает следующая ошибка:
ValueError: No valid date format found for Fri, 20 Jan 2012 16:31:14 +0580
Когда я проверяю mbox , Понял, что это включает строку Date: Fri, 20 Jan 2012 16:31:14 +0580
. Таким образом, он не соответствует ни одному из форматов даты в функции, но проблема в том, что +0580
должно быть «5-символьной строкой в форме + ЧЧММ или -ЧЧММ, где ЧЧ - это строка 2-di git, дающая количество часов смещения UT C, а MM - это строка 2-di git, дающая количество минут UT C смещения " (docs)
Согласно mbox, смещение даты отправки составляет +0580
, что означает плюс 5 часов 80 минут. Это не так? Или я что-то упустил?