Subj : alternative DateTime (ref: fts-0001.016)
To   : Maurice Kinal
From : Alexey Vissarionov
Date : Sat Dec 19 2020 06:48 am

Good ${greeting_time}, Maurice!

18 Dec 2020 06:36:54, you wrote to Andrew Leary:

MK> proposed DateTime = a string 19 bytes long.
MK> Format = "YYYY-MM-DD hh:mm:ss" where,
MK> YYYY = four digit year
MK> MM   = two digit month ranging from 01 to 12
MK> DD   = two digit day ranging from 01 to 31
MK> hh   = two digit hour ranging from 00 to 23
MK> mm   = two digit minute ranging from 00 to 59
MK> ss   = two digit second ranging from 00 to 59
MK> Since there is no room for the UTC offset DateTime should be set to
MK> UTC in order to avoid confusion. This format will ensure that the
MK> packed message is exactly the same byte length as specified in
MK> fts-0001.016 not counting the ASCII null charater that terminates the
MK> string as per packed MSG header specification for all header strings
MK> (eg To, From, subj, etc).

I've only one question: how would the software distinguish that from older (legacy) date format?

Even if we want everyone migrating to the new software, there should be some transition period, while we _must_ (as in FTA-1006) maintain compatibility. Given that, here's my proposal.

The "Date:" kludge containing the date and time in RFC-3339 format with one variation - allow the space between the time and UTC offset. The "datestr" format for that would be "%F %T %:z" (try `date '+%F %T %:z'`).

Rules:
0. The "Date:" kludge _must_ contain valid time in either "%F %T %:z" or "%F %T%:z" format.
1. Once the "Date:" kludge is present in a received message, the compatible software (that's aware of the "Date:" kludge) _must_ use the time from the kludge.
2. When composing a message, the compatible software _must_ fill the "Date:" kludge and _should_ fill the legacy header with the valid time (considering precision limitation) or it _may_ fill the legacy header with all zero bytes.

This would allow us to get rid of ancient software without breakind almost everything.

Also, the example of the "Date:" kludge can be found in this my message :-)


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin.ru!gremlin; +vii-cmiii-ccxxix-lxxix-xlii

... god@universe:~ # cvs up && make world
--- /bin/vi
* Origin: ::1 (2:5020/545)