An interesting question is whether it's better to implement a binary date format as a timestamp or a concatnation of year/month/day/hour/second fields.
I can see that you've thought about this, but it seems you still haven't quite
noticed how full of worms the "dates" can is.
The last time I studied up on dates, I was prompted to write a short essay about it, which you may find amusing (and even informative).
http://www.nutters.org/log/dating-game
(BTW I once implemented a date format as a floating point value counting the days since Y2K, which gives good precision right now but still allows dates far in the past and future. And ignoring the leap second problem is easier.)
That's actually not a bad approach, and ignoring the leap seconds problem
isn't as evil as some might think.
We actually have (at least) two
"universal" times: UTC and UT1. UT1 is a purely solar time, and always has
86400 "seconds" per day. The fundamental unit of UT1 is the "day", where
"day" is a rotation of the Earth relative to the sun, and all the smaller
components are constant fractions of that day.
In UTC, the fundamental unit is the "atomic second" (which is what the SI
nomenclature considers a "second" to be). Given the current rules of UTC, a
"day" is 86400 seconds, with an optional one-second adjustment (plus or
minus) on leap second days,
There's also TAI, which is UTC without the leap seconds. That is, it is based
around the atomic second with exactly 86400 atomic seconds per day, but it
drifts with respect to the solar day because it lacks leap seconds.
Given the purpose and nature of date-stamps in email, I would advocate using
UT1 as the time base. UTC is a PITA because of arbitrary leap seconds, and we
don't have any use for the precision of atomic seconds in this application.
TAI isn't useful for civilian timekeeping. In UT1 there are always 86400
seconds in a day (simple! predictable!), and it provides a date-stamp which
is with 0.9s of UTC, which strikes me as more than good enough for the job.
(Please note that the "second" component of an RFC2822 time-of-day production
is already optional.)
Rather than use the number of days since the year 2000, however, I suggest
using the Modified Julian Day, simply because it's a standard epoch that
someone else already invented. A date can be expressed in the form "MJD
+53125.1666", and this would have meaning to historians who already use MJD.