Homepage: https://www.gnu.org/software/emacs
Parse ISO 8601 date/time strings
ISO8601 times basically look like 1985-04-01T15:23:49... Or so you'd think. This is what everybody means when they say "ISO8601", but it's in reality a quite large collection of syntaxes, including week numbers, ordinal dates, durations and intervals. This package has functions for parsing them all. The interface functions are `iso8601-parse', `iso8601-parse-date', `iso8601-parse-time', `iso8601-parse-zone', `iso8601-parse-duration' and `iso8601-parse-interval'. They all return decoded time objects, except the last one, which returns a list of three of them. (iso8601-parse-interval "P1Y2M10DT2H30M/2008W32T153000-01") '((0 0 13 24 5 2007 nil nil -3600) (0 30 15 3 8 2008 nil nil -3600) (0 30 2 10 2 1 nil nil nil)) The standard can be found at: https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf The Wikipedia page on the standard is also informative: https://en.wikipedia.org/wiki/ISO_8601 RFC3339 defines the subset that everybody thinks of as "ISO8601".