Description of how the product handles dates
:
MS-DOS recognizes dates beyond the year 2000. It does not display the full year, but will sort files correctly.
Two-digit shortcut handling:
If a 2-digit date is entered, the operating system will assume that the date entered is in the 1900s.
The MS-DOSÒ
DATE command does not correctly handle 2-digit dates from 00–79. This command returns the error message "Invalid Date." External command with switches that use date parameter, require years 2000 and beyond to be entered using all for digits. Dates entered using a 4-digit year are handled correctly (e.g. 01-01-2000).
MS-DOSÒ
DATE command is the only operating system command that accepts dates. See the note above for the 2-digit year logic.
MS-DOSÒ
file system APIs use a year offset from 1980 to store dates. When a program gets a date from an MS-DOSÒ
API the program must add 1980.
Product compliance issues:
- MS-DOS cannot display a 4-digit date, using the DIR command (internal to COMMAND.COM).
- MS-DOS will not accept 2-digit date changes for the year 2000 and beyond. To enter the correct date, a 4-digit year must be entered to the DATE command (internal to COMMAND.COM). Failure to enter the correct 4-digit date will result in an "Invalid Date" error.
- MSBACKUP: Naming conventions do not recognize "tens" place.
MSBACKUP from MS-DOS 6.22 creates a catalogue of the backups using a YMMDD format. When a backup is made with the same number in the "ones" place and a different number in the "tens" place (i.e., 1996 and 2006), MSBACKUP treats them as being made on the same date. They are numbered accordingly with a letter following the date to indicate that they are different.
For example, the following series appeared on the DOS 6.22 system:
CC60829A.FUL (No Description) was created on 8/29/1996
CC60829B.FUL (No Description) was created on 8/29/2006
CC60829B.FUL (No Description) was created on 8/29/1996
The actual date of the backup can be found by opening the .FUL file and scrolling to the next to the last line. There it is shown in the MM-DD-YY format.
- MSBACKUP does not recognize dates greater than 1999.
MSBACKUP creates a date stamp on the backup files. When an attempt is made to create a backup over an existing backup, MSBACKUP displays a warning to prevent the user from destroying the file. The warning reads, for example,
"You have inserted Backup diskette #2 from backup set CC60828B.FUL. This diskette was created using the DEFAULT setup on 8-28-96. Do you want to overwrite this diskette or retry using another diskette?"
When the date the backup was made is greater than 1999, the date is improperly displayed; e.g., "This diskette was created using the DEFAULT setup on 8-29-CZ."
For example:
CC60829B.FUL = 8-29-CZ (system date = 8/29/2006)
CC60828A.FUL = 8-28-CZ (system date = 8/28/2006)
CC10829A.FUL = 8-29-AC (system date = 8/29/2001)
- MSAV.EXE (Microsoft Anti-Virus) Report file displays post-year 2000 dates incorrectly.
Microsoft Anti-Virus can be configured to create a report text file (MSAV.RPT) to log anti-virus scan information. The date field of this report will incorrectly report the year as "10" after the year 2000.
For example:
An anti-virus scan on January 1, 2001 will generate a report listing the date as:
01-01-10
This does not affect the functionality of MSAV, although Microsoft recommends that users not rely on MSAV as their primary anti-virus software since it is no longer being updated.
Recommendations to meet compliance:
There are no software updates available at this time. The commands described above are infrequently used and easily worked around. This date issue does not constitute a significant threat to the stability and/or functionality of the product as a whole.
Testing guidelines and recommendations:
Some PCs do have a problem that resets the system date to 1980 or other invalid dates when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors. If you are going to test for this error, Microsoft recommends that you execute the tests on a "test-bed" machine rather than a production machine. Please see the