Author mariocj89
Recipients mariocj89
Date 2017-10-16.22:51:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1508194309.26.0.213398074469.issue31800@psf.upfronthosting.co.za>
In-reply-to
Content
Currently, datetime.strptime does not support parsing utc offsets that include a colon. "+0000" is parsed without issues whilst it fails with "+00:00".

"+NN:NN" is not only ISO8601 valid but also the way the offset is presented to the user when using .isoformat on a datetime with a timezone/offset.

This lead to the users needing to go to external libraries like dateutil or iso8601 just to be able to parse the datetime encoded in strings that "datetime" produces.

Even if a long-term goal would be to provide a way to parse any isoformatted string this issue just aims to address the problem that the %z parsing presents. This already unblocks users from parsing datetime object serialized with isoformat.

With this change, the following will just work:

>>> import datetime as dt
>>> iso_fmt = '%Y-%m-%dT%H:%M:%S%z'
>>> d = dt.datetime.strptime('2004-01-01T10:10:10+05:00', iso_fmt)

*'2004-01-01T10:10:10+05:00' is a sample string generated via datetime.isoformat()

Other options like having a new %:z was proposed but having just %z seems much simpler for the user.



Note: There has been already conversations about adding support on datetime to parse any ISO-formatted string. This is a more simplistic approach. We might be able to get to that situation after this patch, but this aims just to unblock us.

Related:
http://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_iso_wd_8601-2_2016-02-16.pdf
https://mail.python.org/pipermail/python-ideas/2014-March/027018.html
https://bugs.python.org/issue15873
History
Date User Action Args
2017-10-16 22:51:49mariocj89setrecipients: + mariocj89
2017-10-16 22:51:49mariocj89setmessageid: <1508194309.26.0.213398074469.issue31800@psf.upfronthosting.co.za>
2017-10-16 22:51:49mariocj89linkissue31800 messages
2017-10-16 22:51:49mariocj89create