Basically title. 2019 edition of the Standard denotes the “T” prefix to time as mandatory (except in “unambiguous contexts”):
01:29:59
is now actually T01:29:59
, with the former form now designated as an alternative
But date does not have a “D” prefix, not even in “ambiguous contexts”.
1973-09-11
never needs to be something like eg.: D1973-09-11
Anyone know the reasoning behind this change and what is the intended use? The only time-only format with separators that I can think would be undecidable in ambiguous contexts would be hh:mm
which I guess could be mistaken for bible verses?
I suspect the
T
acts as a delimiter.D
is unnecessary, because the date is at the beginning of the string. And thenZ
is another delimiter, to separate the time from the timezone.EDIT: I think I misunderstood your question, but I’ll leave my post, in case it’s useful to others when considering the sections of a full timestamp.
I think you’re probably right. If the format was
DATE
T
TIMEZ
TIMEZONEAnd you omit DATE you still have
T
TIMEHmmm those are good points. I feel this gels well with how in the syntax for durations / periods all unit delimiters are mandatory (also because they’re tail) when the unit is present and the header / marker is
P
.
I have always found the uppercase T/Z delimiters to make the timestamp less human-readable.
The short answer I believe is that ISO 8601 is a Date format so we expect date but not time. Thats my take. I think it’s important to include timezone if you have time thought tbh