Возникает проблема парсинга даты и времени, не понимаю в чем проблема
В чем может быть проблема?
raise ValueError("time data %r does not match format %r" %
ValueError: time data 'Fri, 06-Nov-2020 21:36:45 GMT' does not match format '%a, %d-%b-%Y %H:%M:%S %Z'
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Думаю, проблема в локали -- она поменялась. Эти %a и %b напрямую от локали зависят (ссылка на похожую проблему).
Как вариант, можно принудительно указывать локаль через locale.setlocale для значений даты и времени через LC_TIME, либо для всего LC_ALL.
Пример:
import datetime as DT
import locale
def check():
try:
print(DT.datetime.strptime("Fri, 06-Nov-2020 21:36:45 GMT", "%a, %d-%b-%Y %H:%M:%S %Z"))
except Exception as e:
print(f'[-] {e}')
check()
# 2020-11-06 21:36:45
locale.setlocale(locale.LC_TIME, 'ru')
check()
# [-] time data 'Fri, 06-Nov-2020 21:36:45 GMT' does not match format '%a, %d-%b-%Y %H:%M:%S %Z'
locale.setlocale(locale.LC_TIME, 'C')
check()
# 2020-11-06 21:36:45