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.
\year
primitive:\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.
\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.