05-04-2020, 02:03 PM
The Wikipedia article Navaratna linked to explains the 2038 problem far better than the summary. To quote, "The Year 2038 problem (also called Y2038 or Y2k38 or Unix Y2K) relates to representing time in many digital systems as the number of seconds passed since 00:00:00 UTC on 1 January 1970 and storing it as a signed 32-bit integer. Such implementations cannot encode times after 03:14:07 UTC on 19 January 2038. Similar to the Y2K problem, the Year 2038 problem is caused by insufficient capacity used to represent time."
It does not cause all 32-bit software to error out, or become "unactivated". It means that whatever depends on accurate time values, and uses 32-bit Unix time, will break if the software is not updated to a fixed version before that time.
Just like the Y2K problem, the 2038 problem can be fixed. The reason Y2K became a non-event is that the necessary effort to update software was undertaken ahead of year 2000. The problem was fixed before it became a problem in practice.
The 2038 problem is similarly well-understood, has been discussed for a long time, and more and more systems which would be impacted have been fixed in advance over the years. Not all, but there's a decade to go before it's critical. The simplest fix is to use 64-bit time. 32-bit systems can deal with 64-bit numbers; it's simply a little less performant.
It does not cause all 32-bit software to error out, or become "unactivated". It means that whatever depends on accurate time values, and uses 32-bit Unix time, will break if the software is not updated to a fixed version before that time.
Just like the Y2K problem, the 2038 problem can be fixed. The reason Y2K became a non-event is that the necessary effort to update software was undertaken ahead of year 2000. The problem was fixed before it became a problem in practice.
The 2038 problem is similarly well-understood, has been discussed for a long time, and more and more systems which would be impacted have been fixed in advance over the years. Not all, but there's a decade to go before it's critical. The simplest fix is to use 64-bit time. 32-bit systems can deal with 64-bit numbers; it's simply a little less performant.