Возможный дубликат:
Как лучше всего найти обратную функцию datetime.isocalendar()?
У меня есть год и номер недели по ISO 8601, и мне нужно перевести его в дату первого дня этой недели (понедельник). Как я могу это сделать?
datetime.strptime() принимает как %W
, так и %U
директива, но ни один из них не придерживается правил рабочего дня ISO 8601, которые datetime.isocalendar( ) использовать.
Обновление: Python 3.6 поддерживает %G
, %V
и %u
также присутствуют в libc, что позволяет использовать однострочник:
>>> datetime.strptime('2011 22 1', '%G %V %u')
datetime.datetime(2011, 5, 30, 0, 0)
Обновление 2: Python 3.8 добавил метод fromisocalendar()
, который стал еще более интуитивным:
>>> datetime.fromisocalendar(2011, 22, 1)
datetime.datetime(2011, 5, 30, 0, 0)