Subj : alternative DateTime (ref: fts-0001.016)
To : Alexey Vissarionov
From : Rob Swindell
Date : Fri Dec 18 2020 09:14 pm
Re: alternative DateTime (ref: fts-0001.016)
By: Alexey Vissarionov to Maurice Kinal on 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?
That may be possible for *newer* software to make sense of multiple formats, including a new one, but there's option for *older* software to recognize a new format. There in lies the rub.
> 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.
I think that transition period, for FidoNet, is: forever. :-)
> 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.
"all zero bytes" is not a backwards compatible date value, most likely causing the packet to be discarded as corrupted or just really old, by existing or old FidoNet software. I would mandate that the FTS-1 date field be set as defined in FTS-1.
> 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 :-)
I didn't see a "Date:" kludge in your message (I looked).