Reputation: 20347
I'm using the Paypal API and I get back a timestamp in the following format. I try to parse this to a datetime object using strptime, but I get the following error:
(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
Also, as this format is supposed to be quite a standard format isn't there a function available for this?
EDIT:
Ok seems to be a typo. First %M should be %m
Upvotes: 39
Views: 95548
Reputation: 12901
The parser from dateutil is your friend.
You'll have to pip install dateutil but you've save bags and bags of date conversion code:
pip install python-dateutil
You can use it like this.
from dateutil import parser
ds = '2012-03-01T10:00:00Z' # or any date sting of differing formats.
date = parser.parse(ds)
You'll find you can deal with almost any date string formats with this parser and you'll get a nice standard python date back
Upvotes: 71
Reputation: 363817
The problem is that you use %M
twice. Use %m
for the months:
>>> datetime.strptime('2012-03-01T10:00:00Z','%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2012, 3, 1, 10, 0)
Upvotes: 11