UK TeX FAQ -- question 6

### Are TeX and friends Y2K compliant?

Crashing:
  None of TeX, Metafont or MetaPost can themselves crash due to any change whatever in the date of any sort.
Timestamps:
  In the original sources, a 2-digit year was stored as the creation time for format files and that value is printed in logfiles. These items should not be of general concern, since the only use of the date format file is to produce the log output, and the log file is designed for human readers only.

  Knuth announced in 1998 that implementators could alter this code without fear of being accused of non-compliance. Nearly all implementations that are being actively maintained had been modified to generate 4-digit years in the format file and the log, by the end of 1998. The original sources themselves have now been modified so that 4-digit year numbers are stored.

The `\year` primitive:
  Certification of a TeX implementation (see trip/trap testing) does not require that `\year` return a meaningful value (which means that TeX can, in principle, be implemented on platforms that don't make the value of the clock available to user programs). The TeXbook (see TeX-related books) defines `\year` as "the current year of our Lord", which is the only correct meaning for `\year` for those implementations which can supply a meaningful value, which is to say nearly all of them.

  In short, TeX implementations should provide a value in `\year` giving the 4-digit year Anno Domini, or the value 1776 if the platform does not support a date function.

  Note that if the system itself fails to deliver a correct date to TeX, then `\year` will of course return an incorrect value. TeX cannot be considered Y2K compliant, in this sense, on a system that is not itself Y2K compliant.

Macros:
  TeX macros can in principle perform calculations on the basis of the value of `\year`. The LaTeX suite performs such calculations in a small number of places; the calculations performed in the current (supported) version of LaTeX are known to be Y2K compliant.

  Other macros and macro packages should be individually checked.

External software:
  Software such as DVI translators needs to be individually checked.