Time formatting and storage bugs
http://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs
Current date/time (also last page load/refresh) :
Gregorian date : |
(0000)2022-07-07 T04h59m02s UTC |
Unix time : |
1 657 169 942 |
Unix time (base 2, 32-bit) : |
0110 0010 1100 0110 0110 1000 0001 0110 |
Unix time (base 2, 64-bit) : |
0000 0000 0000 0000 0000 0000 0000 0000 0110 0010 1100 0110 0110 1000 0001 0110 |
2038
Issue : System time is stored as a 32-bit signed integer and will therefore roll over at the target date below.
Target date/time in 2038 :
Gregorian date : |
(0000)2038-01-19 T03h14m07s UTC |
Unix time : |
2 147 483 647 |
Unix time (base 2, 32-bit) : |
0111 1111 1111 1111 1111 1111 1111 1111 |
Unix time (base 2, 64-bit) : |
0000 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 1111 1111 1111 |
Time to year 2038 :
15 years, 6 months, 11 days, 22 hours, 15 minutes, 4 seconds.
Critical point beyond the target date/time in 2038 :
Gregorian date : |
(0000)2038-01-19 T03h14m08s UTC |
Unix time : |
2 147 483 648 |
Unix time (base 2, 32-bit) : |
[error] |
Unix time (base 2, 64-bit) : |
0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 |
2079
Issue : Programmes that store dates as a number of days since an arbitrary date will roll over in 2079 (for a given starting year of 1900).
Target date/time in 2079 :
Gregorian date : |
(0000)2079-06-05 T00h00m00s UTC |
Unix time : |
3 453 148 800 |
Unix time (base 2, 32-bit) : |
[error] |
Unix time (base 2, 64-bit) : |
0000 0000 0000 0000 0000 0000 0000 0000 1100 1101 1101 0010 1101 1110 1000 0000 |
Time to year 2079 :
56 years, 10 months, 29 days, 19 hours, 0 minutes, 57 seconds.
Critical point beyond the target date/time in 2079 :
Gregorian date : |
(0000)2079-06-06 T00h00m00s UTC |
Unix time : |
3 453 235 200 |
Unix time (base 2, 32-bit) : |
[error] |
Unix time (base 2, 64-bit) : |
0000 0000 0000 0000 0000 0000 0000 0000 1100 1101 1101 0100 0011 0000 0000 0000 |
I don’t think it’s even worth developping 128-bit operating systems—they should skip straight to 256-bit.