I always thought the 2038 date limit of UNIX, MacOS, etc. was mostly 
because no one worried because it was so far in the future and 
storing the # of seconds in a 32 bits is very very convenient. If my 
math is right the difference between UNIX and PalmOS is that UNIX 
uses a signed quantity and PalmOS/MacOS an unsigned. I'd guess the 
1904 date was picked (by Mac folks) because it was convenient in the 
# of seconds and it avoided the year 1900 in which requires another 
leap year exception calculation (we're lucking out in that 2000 is an 
exception to an exception and thus the normal leap year rules work).

Some UNIXes added microseconds in an additional long to the date 
functions available, but they still die in 2038. It's kind of too bad 
they didn't use the extra bits and establish some convention we could 
coat-tail on. In reallity half a dozen more bits would be fine for 
all but astronomers and geologists.

I can't see the amount of space taken up by date storage as an issue 
any more on any platform. It certainly isn't worth the pain, 
suffering and extra code involved in dealing with its limitations 
(unless you're a y2k opportunist).

The one thing I'd sort of beg for in PalmOS is to store dates in 
GMT/UTC rather than local time. I much prefer this, and it is what 
UNIX does. The actual display and input of the date is in local time, 
but the date is stored in GMT. The user sets their local time zone as 
a preference and that determines how the dates are input and output. 
This makes sorting of dates (say on mail messages in my case) much 
more reasonable. You of course store the timezone offset with the 
date (my choice here was minutes off GMT to fit into a short as no 
one will ever have a timezone offset in seconds - 15 minute 
resolution could fit it into 7 bits and would also be enough).

LL

Reply via email to