by default to representing time in seconds, making it unsuited for use when a more precise measurement of time is needed, such as when measuring the execution time of programs. Range of representable times Unix time by design does not require a specific size for the storage, but most common implementations of Unix time use a signed integer with the word size of the underlying computer. As the majority of modern computers are 32-bit or 64-bit, and a large number of programs are still written in 32-bit compatibility mode, this means that many systems using Unix time are using signed 32-bit integer fields. The maximum value of a signed 32 bit integer is 2-1, and the minimum value is -(2), making it impossible to represent dates before December 13, 1901 (at 20:45:52 UTC) or after January 19, 2038 (at 03:14:07 UTC). The early cutoff can have an impact on databases that are storing historical information; in some databases where 32-bit Unix time is used for timestamps, it may be necessary to store time in a different form of field, such as a string, to represent dates before 1901. The late cutoff is known as the Year 2038 problem and has the potential to cause issues as the date approaches, as dates beyond the 2038 cutoff would wrap back around to the start of the representable range in 1901. 64-bit storage of Unix time is generally assumed not to have issues with date range limitations, as the effective range of dates representable with Unix time stored in a signed 64-bit integer is over 584 billion years, or around 42 times larger than the current estimated age of the universe. Alternatives Within Unix operating systems, alternative methods for storing and presenting time exist, including , which stores microseconds as well as seconds. Unix time is also not the only standard for time that counts away from an epoch. The Active Directory Time Service is used primarily on Windows computers and in Windows file systems and stores time as a count of 100-nanosecond intervals that have elapsed since 0:00 GMT on January 1, 1601. The Network Time Protocol used to coordinate time between computers uses an epoch of January 1, 1900, counted in an unsigned 32-bit integer for seconds and another unsigned 32-bit integer for fractional seconds, which rolls over every 2 seconds (about once every 136 years). Many applications and programming languages