> [ ... ] they're trying to encode a character based representation into a numeric variable [ ... ]
That's not what's going on here.
It's pure stupidity on the part of the implementor - namely Microsoft.
They decided to use a
signed 32-bit integer instead of an
unsigned 64-bit integer to represent a date - namely the type
Maximum possible value of a 32-bit
signed integer: 2,147,483,647. Evidently, 2,201,010,001 won't fit, so it overflows.
Maximum possible value of a 64-bit
unsigned integer: 18,446,744,073,709,551,615.
If they changed
unsigned but kept the 32-bit integer size in their patch - which is very likely, given Microsoft's legendary QOI - they're going to run into the
time_t problem in 2038.
They only had 22 years to think about this, so we gotta cut them some slack.
Congrats to Microsoft for making everyone re-live the party atmosphere of 12/31/1999. Cue mandatory Prince song here.