
-----Original Message----- From: Alexander Belopolsky [mailto:alexander.belopolsky@gmail.com] Sent: Wednesday, October 25, 2017 4:33 PM To: Alex Walters tritium-list@sdamon.com Cc: Elvis Pranskevichus elprans@gmail.com; Python-Dev <python- dev@python.org>; Chris Barker chris.barker@noaa.gov Subject: Re: [Python-Dev] iso8601 parsing
On Wed, Oct 25, 2017 at 3:48 PM, Alex Walters tritium-list@sdamon.com wrote:
Why make parsing ISO time special?
It's not the ISO format per se that is special, but parsing of str(x). For all numeric types, int, float, complex and even fractions.Fraction, we have a roundtrip invariant T(str(x)) == x. Datetime types are a special kind of numbers, but they don't follow this established pattern. This is annoying when you deal with time series where it is common to have text files with a mix of dates, timestamps and numbers. You can write generic code to deal with ints and floats, but have to special-case anything time related.
repr(datetime.datetime.now())
'datetime.datetime(2017, 10, 25, 17, 16, 20, 973107)'
You can already roundtrip the repr of datetime objects with eval (if you care to do so). You get iso formatting from a method on dt objects, I don’t see why it should be parsed by anything but a classmethod.