Re: bye bye 2038->1901, I'll not miss you at all.
(Sorry I typoed 2038 as 2039 in my post, it should have been)
2038-01-19 03:14:06 (Tuesday)
2038-01-19 03:14:07 (Tuesday)
1901-12-13 20:45:52 (Friday)
1901-12-13 20:45:53 (Friday)
1970-01-01 00:00:00 + 0x7FFFFFFF = 2038-01-19 03:14:07
(0x7FFFFFFF hex = 01111111111111111111111111111111 in binary = 2147483647 decimal)
1970-01-01 00:00:00 + 0xFFFFFFF = 1901-12-13 20:45:52
(0x80000000 hex = 10000000000000000000000000000000 in binary = -2147483647 decimal)
The 2038 bug exists because programmers decided to use a signed 32-bit integer, instead of an unsigned 32-bit integer.