Ответ 1
Похоже, вы смешиваете %M
(минута) и %M
(месяц).
Я использую API Paypal, и я возвращаю временную метку в следующем формате. Он пытается разобрать это на объект datetime с использованием strptime, но я получаю следующую ошибку:
(Pdb) datetime.strptime('2012-03-01T10:00:00Z','%Y-%M-%dT%H:%M:%SZ')
*** error: redefinition of group name 'M' as group 5; was group 2
Кроме того, поскольку этот формат должен быть стандартным форматом, нет ли функции, доступной для этого?
EDIT:
Ок, похоже, опечатка. Первый% M должен быть% m
Похоже, вы смешиваете %M
(минута) и %M
(месяц).
Синтаксический анализатор from dateutil - ваш друг.
Вам нужно будет установить дату установки dateutil, но вы сохраните мешки и сумки кода преобразования даты:
pip install python-dateutil
Вы можете использовать его так.
from dateutil import parser
ds = '2012-03-01T10:00:00Z' # or any date sting of differing formats.
date = parser.parse(ds)
Вы обнаружите, что с этим синтаксическим анализатором вы можете обрабатывать почти любые форматы строк даты, и вы получите хорошую стандартную дату python
Проблема заключается в том, что вы дважды используете %M
. Используйте %M
в течение месяцев:
>>> datetime.strptime('2012-03-01T10:00:00Z','%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2012, 3, 1, 10, 0)
У вас есть опечатка. %M
используется дважды. Вы хотели использовать %M
за месяц. Из docs:
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].