Backport of Python 3.7's datetime.fromisoformat
A backport of Python 3.7’s datetime.fromisoformat methods to earlier versions of Python 3. Tested against Python 3.4, 3.5 and 3.6.
backports.datetime_fromisoformat is under active development, and should be considered pre-alpha.
pip install backports-datetime-fromisoformat
>>> from datetime import date, datetime, time >>> from backports.datetime_fromisoformat import MonkeyPatch >>> MonkeyPatch.patch_fromisoformat() >>> datetime.fromisoformat("2014-01-09T21:48:00-05:30") datetime.datetime(2014, 1, 9, 21, 48, tzinfo=-05:30) >>> date.fromisoformat("2014-01-09") datetime.date(2014, 1, 9) >>> time.fromisoformat("21:48:00-05:30") datetime.time(21, 48, tzinfo=-05:30)
In Python 3.7, datetime.fromisoformat was added. It is the inverse of datetime.isoformat. Similar methods were added to the date and time types as well. For those who need to support earlier versions of Python, a backport of these methods was needed.
backports.datetime_fromisoformat is a C implementation of fromisoformat based on the upstream cPython 3.7 code. For timezone objects, it uses a custom timezone C implementation (originally from Pendulum).
Usage in Python 3.7+
NOTE: in Python 3.7 and later, the fromisoformat methods exist in the stdlib, and installing this package has NO EFFECT.
Goal / Project Scope
The purpose of this project is to provide a perfect backport of the fromisoformat methods to earlier versions of Python, while still providing comparable performance.