Robert Elz wrote:
a very rough calculation (and assuming I did it correctly) means that the format you described should be able to represent +/- (almost) 30,000 years from the epoch - that's something more that 27000 BC.
I think MS-Windows DateTime is unsigned internally, so it can't represent any times before 0001-01-01 00:00:00 UTC. It's a bit confusing, as MS-Windows has several time types each with their own epoch and tick size and range.
I have no idea if that -7537 is 7537 BC or 7538 BC (ie: whether it is assumed that there was a year 0 or not). I suspect that this all happens just by accident,
No accident. NetBSD assumes year 0. tzcode is the same, as is GNU/Linux and Solaris. There is also year -1, etc. For example, the tzcode 'date' command does this: $ date -u -r -62135596800 Mon Jan 1 00:00:00 GMT 0001 $ date -u -r -62135596801 Sun Dec 31 23:59:59 GMT 0000 $ date -u -r -62167219200 Sat Jan 1 00:00:00 GMT 0000 $ date -u -r -62167219201 Fri Dec 31 23:59:59 GMT -001 $ date -u -r -67767978442512096 Tue Jan 1 02:38:24 GMT -2147479778 GNU/Linux 'date' is similar except it says 'UTC' rather than 'GMT' (of course neither abbreviation is correct for these old time stamps).