11/11/96 The date Command: Year 2000 and Beyond SPECIAL NOTICES Information in this document is correct to the best of our knowledge at the time of this writing. Please send feedback by fax to "AIXServ Information" at (512) 823-4009. Please use this information with care. IBM will not be responsible for damages of any kind resulting from its use. The use of this information is the sole responsibility of the customer and depends on the customer's ability to eval- uate and integrate this information into the customer's operational environment. ABOUT THIS DOCUMENT This document discusses the date command especially in regards to the years preceding 2000 and is applicable to all versions of AIX. THE DATE COMMAND AIX uses a signed integer to store the number of seconds since the UNIX epoch - Jan 1, 1970. INT_MAX is 2,147,483,647, or 2=B531 which works out to about 68 years worth of seconds. INT_MAX is defined in /usr/include/sys/limits.h. After testing AIX 3.2 to determine what happens when the date falls over to INT_MAX we find that this occurs at (give or take a few seconds) Tue, Jan 19 2038 03:14:07 (CUT or Greenwich time). After fallover, the date is Fri, Dec 13 1901 20:45:53 (about 68 years before the epoch). The date command in 3.2.5 defines the max value of year 20yy to be 37 so the max value is 2037 for a 3.2.5 machine. The date command on a 4.1.4 system defines the max value of year 20yy to be 38 so the max value is 2038 for a 4.1.4 machine. The valid date range for AIX is therefore [1970 - 2037/2038]. As a result, changing the date in smit to the year 2005 only requires that you change the 2-digit year field to "05". Since 2005 is the only year within the valid date range that ends in 05, the system knows to set the date to 2005 instead of 1905. AIX Version 4.2 and subsequent releases will conform to year 2000 processing requirements by providing a full four-digit date field and by conforming to proper leap year calcu- lations (for example, the year 2000 is a leap year). AIX also conforms with International Standard ISO 8601: 1988 Data Elements and Interchange Formats -- Information Inter- change Representation of Dates and Time. The date Command: Year 2000 and Beyond 1 11/11/96 ACCOUNT EXPIRATION DATES In AIX versions 3.2.x through 4.1.4, the format for defining the expiration date of an account is MMDDhhmmyy, where yy is the last two digits of the year. The year range for this attribute is 1900 thru 1999, thus this feature will no longer function as expected starting with the year 2000. This has been changed in AIX Version 4.2, which has been "year 2000 certified". Starting with Version 4.2, the account expiration attribute has the same range of valid years as the date command does. For pre-4.2 releases, the suggested work-around is to set the expiration date to 0 after the year 1999 to avoid expiring all of your users. THE "LASTUPDATE" FIELD IN /ETC/SECURITY/PASSWD The "lastupdate" field in /etc/security/passwd specifies the number of seconds since epoch (00:00:00 GMT, Jan 1, 1970) when the user's password was last changed. This field is currently 9 digits long, and will flip over to 10 digits in September, 2001 when the number of seconds since epoch reaches 1000000000. The lastupdate field is valid for the full range of years that the date command is valid for, and thus will function correctly after the year 2000. SOFTWARE FIXES FOR AIX VERSIONS 3.2.5 AND 4.1 As of Fall 1996, versions 3.2.5 and 4.1 can be brought into compliance with year 2000 requirements by applying the fol- lowing fixes: PTF's for AIX 3.2.5: IX59790 - U444250 - YEAR 2000 AND THE EXPIRES ATTRIBUTE IX59591 - U444180 - TOUCH -T CAN NOT SET THE TIMES <>2000 IX59438 - U444197 - ERRCLEAR FAILS WHEN YEAR DATE IS > 2000 IX55509 - U441369 - R320 SCCS COMMANDS FOR YEARS >1999 APARS for AIX 4.1: IX55509 - U441500 - R410 SCCS COMMANDS FOR YEARS >1999 All that these ptf's and certification mean is that the software will not fallover after year 2000. There will still be the problem that the date is only stored in a two digit format and it is up to the applications running on the system to carry on and not fallover. AIX 4.2 is the only version that has the date stored in a four digit format, but again, this only impacts applications you may be running, and has no effect on the operating system itself. For more information on the issues involving computing systems in the year 2000, ask your IBM representative for more information or access IBM's World Wide Web (WWW) page on this topic at URL: http://www.software.hosting.ibm.com/year2000/ The date Command: Year 2000 and Beyond 2 11/11/96 READER'S COMMENTS Please fax this form to (512) 823-4009, attention "AIXServ Informa- tion". You may also e-mail comments to: elizabet@austin.ibm.com. These comments should include the same customer information requested below. Use this form to tell us what you think about this document. If you have found errors in it, or if you want to express your opinion about it (such as organization, subject matter, appearance) or make sug- gestions for improvement, this is the form to use. If you need technical assistance, contact your local branch office, point of sale, or 1-800-CALL-AIX (for information about support offer- ings). These services may be billable. Faxes on a variety of sub- jects may be ordered free of charge from 1-800-IBM-4FAX. Outside the U.S. call 415-855-4329 using a fax machine phone. When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments in any way it believes appropriate without incurring any obligation to you. NOTE: If you have a problem report or item number, supplying that number may help us determine why a procedure did or did not work in your specific situation. Problem Report or Item #: Branch Office or Customer #: Be sure to print your name and fax number below if you would like a reply: Name: Fax Number: ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ END OF DOCUMENT (Date.2000.cmd) The date Command: Year 2000 and Beyond 3