8 ms·
This is very neat, but maybe not completely accurate. "2021-10-24 11:02:03Z" is outside iso8601 in the figure, but I think it's valid iso8601. True, "T" is the
by em500 5y ago
This is very neat, but maybe not completely accurate. "2021-10-24 11:02:03Z" is outside iso8601 in the figure, but I think it's valid iso8601. True, "T" is the One True date-time separator in iso8601 (IMO its biggest wart, as it looks awful for human eyes: "2021-10-24T11:02:03Z"). But according to the draft standard[1], page 21:
> By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard
[1] The actual ISO standard is not freely available, but the Library of Congress has free draft standards:
https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_i...
https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_iso_wd_8601-2_2016-02-16.pdf https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_i...
- rdpintqogeogsaa 5y agoIt's correct. Omission means 2021-10-2411:02:03Z, not replacing it with a space instead.
- grey_earthling 5y agoOmitting the hyphens and colons is allowed too (IIRC), so I suppose omitting the T is intended for cases like 20211024110203Z — which IMO is a sensible format when there's no ambiguity that this is a date-time.
- jfrunyon 5y agoThat's a sensible format only for interchange - humans need separators to read it...
- kbenson 5y agoThey don't need it. It makes it easier, but if you know it's a date and time format, it's pretty easy to read as long as you take care to keep track at which characters your looking at. Justlikehowinmostcasesepacesmakeiteasiertoreadsomethingbutaren'trequired.
- jfrunyon 5y agoOkay. Go try quickly scanning a table or spreadsheet with 1000 rows of that. Good luck.
- LinAGKar 5y agoSo that should also be in the dashed circle.
- Arcorann 5y agoThere are some non-trivial changes between the draft standards and the final ISO 8601:2019-1 standard, one of which relates to making the use of T stricter, and the mentioned provision was removed. Regardless, ISO 8601 has generally discouraged using spaces within expressions. From ISO 8601:2004, section 3.4.1: > Unless explicitly allowed by this International Standard the character "space" shall not be used in the representations. Similarly, from ISO 8601:2019-1, section 3.2.1: > The character "space" shall not be used in the expressions. However, through looser interpretation of the standard, "2021-10-24 11:02:03Z" could be allowed if treated as a date representation followed by a space followed by a time representation (note that the formal time representation in ISO 8601:2019-1 is T11:02:03Z, but it allows omission of T for extended format as per 5.3.5).
- letmeinhere 5y agoISO business model is so strange; in order to make money they have to hide the actual standard from the vast majority of engineers that it relates to, so we just assume whatever was proposed was close enough.
- ademarre 5y agoThere are very many things I never would have discovered and learned if IETF RFCs were not free. The most useful knowledge I've acquired about building things on the internet came from there. Industries that are more reliant on ISO or other non-free standards are surely worse off because of it.
- marcosdumay 5y agoYes, on practice the draft becomes the actual standard. That is, unless it's in a regulated industry that is required by law to follow the actual standard. Then it disobeys the law most of the time, and "disobey" the market the rest of the time and everything breaks. Also, it leaves the people with a secret law that nobody can know the consequences. The ISO governance should be changed ASAP. It was never good, and nowadays it's a disaster.
- 5y ago
- cmclaren 5y agoYour example is valid in ISO 8601-1:2019. There are only two possible representations for which "T" is required: hh or hhmm in 'basic' format (i.e. no ":" separator). The former could be confused with a two-digit century, the latter could be confused with a four-digit year. Adding "T" to hh or hhmm solves this. Any of the following eliminates the "risk of confusion": - 'extended' format (hh:mm) - decimal fraction (hhmm,m or hh,h; see 5.3.1.4); - UTC designator (hhmmZ or hhZ; see 5.3.3), or; - time shift (hhmm±hhmm, hhmm±hh, hh±hhmm, or hh±hh; see 5.3.4). Also worth noting: hhmmss in 'basic' format (i.e. no ":" separator) does not pose a risk of confusion, as YYYYMM in 'basic' format (i.e. no "-" separator) is not permitted by the spec.
- colejohnson66 5y agoTangent: what’s the point of these “international standards” when I have to pay to know the standard I’m following? Sure, I can use final drafts, but I shouldn’t have to. It honestly seems like a racket. Businesses collaborate to write a standard that costs hundreds of dollars, and then brand new small businesses can’t afford to assert that they follow them.
- ethbr0 5y agoIf they just sold test validators and certification services instead ("Certified by ISO"), it'd be such a healthier dynamic.
- marcosdumay 5y agoISO shouldn't sell anything. It doesn't have a profit motive and can be financed by governments without any problem.
- kbenson 5y agoCan and will are two separate things, and even if it happens then you get countries trying to influence decisions with the threat of stopping funding. That's not to say it wouldn't be better, just that it's not without its own problems.
- superjan 5y agoIt is great when standards become free, but then we need to agree how else to fund the standardization process. Taxpayer money?
- GoblinSlayer 5y agoRFC 3339 is concerned with interoperability problems due to date formats. By adding a space you create interoperability problems. And space-based format uses ' UTC' suffix instead of Z suffix.