Cory Nelson
New member
Chiming in here as a systems developer with a couple decades of experience...
Your CPU's architecture does not dictate the size of numbers used by software. By using literally the same basic arithmetic we learn in school, computers can build a 64-bit number from two 32-bit numbers, just like we can build a larger number from two or more of our 0-9 digits.
The three common modern OSes -- Linux, Mac, and Windows -- have all used 64-bit times internally for a decade or more, even on 32-bit hardware. Now, some poorly made software could potentially be assuming it is 32-bit, and this will be the source of any issues come the year 2038 -- not the OS itself, but the apps running on it.
C has a time_t type (the source of the "2038 problem") that has traditionally been 32-bit, but does not have to be an in fact in virtually every modern compiler it is now 64-bit.
Windows has the SYSTEMTIME and FILETIME types that it uses internally since Windows 2000 which can represent a range of over 30,000 years.
.NET, which is what most Windows Mobile apps are exclusively made with, has the DateTime type which is 64-bit and is limited, artificially, to just under the year 10000.
Modern phone ecosystems are in a uniquely good position because most of the apps made for them have never had a chance to use a 32-bit time -- their platform never exposed one, but instead already had a 64-bit one. The app developer would need to be doing something too clever for their own good to screw it up. Desktop software is where the hurt will be come 2038.
Your CPU's architecture does not dictate the size of numbers used by software. By using literally the same basic arithmetic we learn in school, computers can build a 64-bit number from two 32-bit numbers, just like we can build a larger number from two or more of our 0-9 digits.
The three common modern OSes -- Linux, Mac, and Windows -- have all used 64-bit times internally for a decade or more, even on 32-bit hardware. Now, some poorly made software could potentially be assuming it is 32-bit, and this will be the source of any issues come the year 2038 -- not the OS itself, but the apps running on it.
C has a time_t type (the source of the "2038 problem") that has traditionally been 32-bit, but does not have to be an in fact in virtually every modern compiler it is now 64-bit.
Windows has the SYSTEMTIME and FILETIME types that it uses internally since Windows 2000 which can represent a range of over 30,000 years.
.NET, which is what most Windows Mobile apps are exclusively made with, has the DateTime type which is 64-bit and is limited, artificially, to just under the year 10000.
Modern phone ecosystems are in a uniquely good position because most of the apps made for them have never had a chance to use a 32-bit time -- their platform never exposed one, but instead already had a 64-bit one. The app developer would need to be doing something too clever for their own good to screw it up. Desktop software is where the hurt will be come 2038.