This content is no longer maintained. Please visit our new website.

ACCC Home Page Academic Computing and Communications Center  
Accounts / Passwords Email Labs / Classrooms Telecom Network Security Software Computing and Network Services Education / Teaching Getting Help
ISO 8601 Dates: What They Are and How to Use Them
Contents 1. What They Are 2. In Programs 3. In Output 4. On Personal Computers
5. Fix Data/Programs A1. Important Dates A2. Leap Years A3. A Y2K Parable  

Appendix 1: Dates with Special Importance in Computing

Dates Before the Year 2000
  January 4, 1980: Day 0 for the DOS operating system. This is the date that the clocks on most IBM/Intel/Windows personal computers will reset to if they lose their proper setting.

December 31, 1995: This date was the first of several that were used by some systems to mean "forever". And on the following day, January 1, 1996, some things that  were intended to be kept forever actually did expire and were erased. This caused somewhat of a panic, and people began to realize what we were in for.

December 31, 1998: This date has been used by some systems to mean "forever". And on the following day, January 1, 1999, some things that were intended to be kept forever would expire and be erased. These things could be anything from files stored on tape to frozen sperm. Any program of any kind that was set up to recognize 99 as a special value of any kind, as an end-of-file marker for example, will begin to have problems on this date. This has been called "The 99 Problem".

July 1, 1999: The first day of Fiscal Year 2000 for a great many companies and governmental bodies.

September 9, 1999: (9/9/99) Another "99 Problem" date that could have been used in some programs for a special meaning, such as forever.

December 31, 1999: (Also known as "New Year's Evil".) This is another date that has also been used by some systems to mean forever. And on the following day, January 1, 2000, more things that were intended to be kept forever would expire and be erased.

Back to Contents

Dates In the Year 2000
  January 1, 2000: The big day. The two-digit year rolls over to "00". Count on being at work, even though this will be a Saturday and a holiday. Expect odd malfunctions ranging from the amusing to the life threatening. (Although the most of the immediate problems should fall in the amusing to slightly inconvenient range.) Intel/IBM/Windows Personal Computers which contain The Tick-Over Bug will need to be rebooted to have their date manually set to 2000, although once that's done they should be OK.

February 29, 2000: (A day which will live in infamy, simply because it existed.) The year 2000 is a leap year, a once-in-400-years occurrence. For more information, see Appendix 2: Leap Year Problem.

March 1, 2000: The day after Leap Year Day might produce some additional malfunctions. You will need to check very carefully that this is day number 60 within the year, and that all your programs and systems are aware that it is Wednesday. Any computer or software or program which lists March 1, 2000 as being a Tuesday is defective and should be taken out of service until fixed!

December 31, 2000: This will be the 366th day of the year 2000. There is another leap year exposure here, as defective programs might flag this day as an error if they perform incorrect leap year calculations.

January 2, 2001: This is the first day since 1932 that it will be impossible to determine which element of a date is the year, if the month, date, and year are all two digits. Throughout 2000, the year can always be identified as being "00", since neither the month nor day can be zero. The date "01/01/01" was also unambiguous -- it can only be January 1, 2001. On January 2, 2001, however, expect some programs and human readers to interpret the date as February 1, and others to read it as January 2. Another reason to always use four-digit years! Similar problems may crop up on February 1, 2001.

This date ordering issue is no laughing matter! See ISO 8601: The Right Format for Dates.

Back to Contents

It's Not Enough to Get Through February 29, 2000

As you go looking for Year 2000 dependencies, you should be on the lookout for things that will have problems after 2000, such as:

September 9, 2001, 01:46:40 UTC: This date is gone now without dire consequences, but the problem is worth keeping in mind. On some systems (including Unix and RISC OS), the number of seconds since the origin began needing 10 decimal digits at this time, which could lead to buffer overflows in badly written software.

January 1, 2028: There seem to be a great many binary date formats which use seven bits for the year number. In 2000, they will show a value of "100" for the year, and as long as all you do to it is to add 1900 to it, you should be OK. However, in 2028, they will wrap back to 0!

February 7, 2036 06:28:16 UTC: The Internet clock, as defined in RFC 1305, wraps to 0. This figure is a 32-bit unsigned integer number of seconds since Midnight, January 1, 1900, UTC.

January 19, 2038 03:14:08 UTC: The UNIX clock wraps to 0. This figure is stored internally as a 32-bit signed integer number of seconds since Midnight, January 1, 1970, UTC. Many UNIX vendors plan to extend their standard integer size to 64 bits well before then, which should reduce the number of systems affected by this problem. (However, that could cause other collateral damage!)

September 17, 2042, 23:53:47 UTC: The IBM Mainframe clock wraps to 0. Work is underway now to expand the number of bits of this clock.

Note: "UTC", or "Universal Time" is the new name for "GMT", or "Greenwich Mean Time". Among other reasons, this new name has been adopted because the town of Greenwich, England goes on Daylight Time in the summer.

Back to Contents

This page last updated 1998-09-25. Please send comments and reports of broken links to the author: Roger Deschner

Using ISO 8601 Dates Previous:  5. Fix Data/Programs Next:  A2. Leap Years

2002-1-9  ACCC Documentation
UIC Home Page Search UIC Pages Contact UIC