More about: @Linux Distance This happens from your point of view.But from the viewpoint of a programmer it will work as expected: it will reset.
I didn't actually write the code, it's all over the Internet in the same exact form. The situation for 32-bit Linux (and the compatibility layer for 32-bit binaries on 64-bit Linux) is much less rosy.
I went looking for this to illustrate the 2038 problem to a coworker, and 2 years after making the above comment, I have very little doubt that in 2038 we will have 32 bit machines that will fail. It's broken and fixing it without breaking all existing binaries is not an easy task.
Even if there is some level of backwards compatibility all binaries that want to get correct time will need to be rebuilt to use the new 64-bit time interfaces.
There has been some work done (see for example https://lwn.net/Articles/643234/ and but afaict we are still a long way from a full solution.
Let's assume this problem exists and is not fixed yet. So there is no reason to be concerned, but this is indeed an interesting question.
12.04 will not be supported forever, so you and all other people will be on an updated distribution until this happens, since there are many years between. The system clock won't (not on a reasonably recent kernel anyway); some data structures (and the programs using it) might exhibit anomalous behavior.
In my opinion, this will be a problem with embedded devices - those are much less likely to be running current [email protected]: I wasn't thinking "toaster," more like "traffic light controller." Those things are a bit more rugged than consumer-grade electronics, and could easily exceed that lifespan (with part replacements, but possibly without upgrades) - IIRC, there were some issues with such 1980s electronics just after Y2K. In the worst case, from the viewpoint of a programmer it will work as expected: it will be reseted to date 1901-12-13 : This in case you will not update your current distributions until this happens. Using a signed 64-bit value introduces a new wraparound date that is over twenty times greater than the estimated age of the universe: approximately 292 billion years from now, at on Sunday, 4 December 292,277,026,596.
The ability to make computations on dates is limited by the fact that uses a signed 32 bit int value starting at 1900 for the year.
This limits the year to a maximum of 2,147,485,547 (2,147,483,647 + 1900).
While this solves the problem for executing programs, it does not solve the problem of storing date values within binary data files, many of which employ rigid storage formats.
It also doesn't solve the problem for 32-bit programs running under compatibility layers and may not solve the problem for programs that incorrectly store time values in variables of types other than I use Ubuntu 13.04 on 64-bit and, by curiosity, I changed manually the time to 2038-01-19 .