ECMAScript specifies "simplified extended ISO 8601", which is just that string above.
ECMAScript specifies "simplified extended ISO 8601", which is just that string above.
That also reminds me that .NET documentation likes to pedantically remind me that what I think of as ISO 8601 is probably more specifically IETF RFC 3339, which defines a formal BNF grammar as ISO didn't think to do that in the 80s. (Yay, standards.)
It took me quite a while staring at Stack Overflow answers and my code, wondering why the SO answers supposedly worked and my code did not, before I realized I had time.strptime and they were using datetime.strptime.
python-dateutil for incomplete but stdlibbish ISO 8601:2004.
python-edtf for ISO 8601-2:2019.
However, the ISO 8601-2:2019 spec is something of a clusterfuck born out of EDTF.
Most public discourse about it can be found in various confused crossover threads from people who need open-ended dates for their projects.[2-9]
Here's a haskell implementation of ISO 8601-1:2019 and ISO 8601-2:2019, for reference.[10]
[1]: https://github.com/metomi/isodatetime/issues/138
[2]: https://www.loc.gov/standards/datetime/
[3]: https://www.loc.gov/standards/datetime/background.html
[4]: https://www.loc.gov/standards/datetime/implementations.html
[5]: https://github.com/plk/biblatex/issues/656
[6]: https://github.com/ixc/python-edtf/issues/24
[7]: https://github.com/saw-leipzig/csv2cmi/issues/18
[8]: https://github.com/schemaorg/schemaorg/issues/242
[9]: https://github.com/JohnLukeBentley/open-datetime-standard-bo...