The problem is that not everyone agrees on what the pre-1923 dates are. We (westerners) are now using the Gregorian calendar. Before 1582, people were using the Julian calendar. In between 1582 and 1923, some people used one or the other.
For instance, England switched to the Gregorian calendar in 1752 and that's what the cal
command uses as the switching point. See the output of cal 9 1752
.
So if you find an old English document that refers to the 3rd of November 1654, that's not necessarily the same date as the same 3rd of November 1654 referred to in a French document. Both the French and English people at the time would agree on what date 0001-01-01 was (as in for instance what happened on that day), but that's not the date GNU date
for instance thinks it was.
I once wrote a few POSIX shell functions for arbitrary date calculation using the same calendar switch as cal
and ignoring leap seconds. You can find it at: https://github.com/stephane-chazelas/misc-scripts/blob/master/wide_strftime.sh
For instance, to know what the date was 10G seconds (assuming 86400 seconds per day, so not all seconds lasting the same amount of time) after 0001-01-01 00:00:00 GMT Julian Calendar:
$ timegm 1 1 1 0 0 0
$ wide_strftime "%c" "$((REPLY + 10000000000))"
echo "$REPLY"
$ echo "$REPLY"
Mon Nov 18 17:46:40 0317