GnuCash Y2K Readiness


Table of Contents

GnuCash versions 1.1.25 and later store all dates as seconds and nanoseconds, where the seconds are stored in a 64-bit signed integer. This should suffice to store dates into both the distant past as well as the distant future, so long as they fall not too many orders of magnitude outside cosmologists' estimations of the age of the universe.

The file format for version 1.1.25 and later stores dates in the above-described fashion.

Some internal routines use the time_t type to express seconds. Note that on most OSes, this is a 32-bit quantity, and is thus limited to the Unix epoch, roughly December 1901 thru Jan 2038. It is reasonable to expect that time_t will migrate to the use of 64 bit values by that time.

Backup and log files are time-stamped using the standard Unix ctime() routine, which takes a time_t argument. Thus, the backup and log mechanism may experience trouble in 2038, assuming your present Unix continues to be in service at that time without any remediation.

Note that GnuCash also correctly recognizes February 29th, 2000 as a "leap day," another of the "critical Y2K dates."

This is all highly suggestive that GnuCash should cope reasonably well with the transition to the new millennium, whether you consider that takes place in 2000 or in 2001...

Y2K issues are described in more detail at Linux and Year 2000.