Windows 98a Y2K Issues
The following Year 2000 issues are addressed in this update:
Regional Settings Date/Time - If Regional Settings in Control Panel are set to use
two-digit years, the date/time function may not return the proper date because only two
digits at a time can be accepted.
Java Virtual Machine - Some Year 2000 issues have been reported in connection with Java
virtual machines based on the Sun Microsystems Java Development Kit (versions
1.1.1-1.1.5). For example, if your Web site uses Java and makes use of the
java.txt.SimpleDateFormat class library and you enter four digits for the year, the date
functions may use only the first two digits.
Dialer.Exe Log - If you make a phone call using the phone dialer, the log file that is
created displays the year portion of the call date incorrectly.
Date/Time control - If you open Date/Time in Control Panel and set the date to February 29
of a leap year and then use the up/down buttons to change years, February 29 might be
displayed even for non-leap years.
WordPad custom properties - If you select Properties/Custom on a Wordpad or Word document,
the custom date settings will not accept the Year 2000 as a valid entry when entered as a
two-digit year, or "00." Additionally, since all two digit dates are assumed to
be in the 20th century, if the time zone is set to Far East, the date properties will lose
a day when you enter the year as 2000.
Date Rollover - If your system boots up at the precise fraction of a second when the date
rolls at midnight, the system clock may display an inaccurate time/date. This is an
extremely rare occurrence.
Lagging IP Lease dates - If you log on to a LAN after March 1, 2000 and run Winipcfg from
the Run command or Ipconfig from the DOS VM, the DHCP client reports the IP lease date as
having been obtained on the previous day.
Programming to data access components - If you are a programmer and code to ADO or OLE DB,
use data access components such as adDate, adDBDate, Dbtype_Filetime, chose to use an
international date format with periods as separators, and specify a year less than 60,
your date may be translated as a time.
Microsoft Foundation Class Library - After the Year 2000, programs that use the
COleDateTime function may improperly parse a date.
DOS Xcopy - When using xcopy in real mode with the optional parameter /D:date, xcopy does
not accept years entered as two digits, except for the years 80 through 99. The message
"Invalid date" is displayed. When using xcopy in protected mode (from within
Windows) two-digit dates are accepted but are recognized as being within the 20th century
(02/05/01 is seen as 02/05/1901).
OLE Automation - The Microsoft Automation library contains routines for interpreting two
digit years and provides convenient way for applications to create unambiguous (serial)
dates. In Windows 98 the current two digit year cutoff is 2029. This means that two digit
years beginning with 30 will be interpreted as being in the 20th century, i.e. 1/1/30 is
converted to 1/1/1930, irrespective of the user's century window settings in Control
Panel\Regional Settings\Date tab.
DOS Xcopy - When using xcopy in real mode with the optional parameter /D:date, xcopy does
not accept years entered as 2 digits, except for the years 80 - 99. The message
"Invalid date" is displayed. When using xcopy in protected mode (from within
Windows) 2 digit dates are accepted but are recognized as being within the 20th century
(02/05/01 is seen as 02/05/1901).
MQRT.DLL - Microsoft Message Queue (MSMQ) is installed as part of Personal Web Server and
works with two types of digital certificates - external and internal. The internal
certificates is a concept supported by MSMQ to allow MSMQ applications to allocate
certificates for the purpose of sending authenticated messages. The code creating the
requests for internal certificates for MSMQ 1.0 requests to set the validity of the newly
created certificates to 10 years. The problem materializes when MSMQ tries to create such
a certificate on February 29, 2000 (or any leap year such as 2004, 2008, etc.). This fails
because it computes the validity by adding 10 years to the current date which yields
2/29/2010. This is an illegal date because 2010 is not a leap year.