DOC: COleDateTime No Longer Accepts 2-Digit Years (155005)
The information in this article applies to:
- The Microsoft Foundation Classes (MFC), when used with:
- Microsoft Visual C++, 32-bit Enterprise Edition 4.2
- Microsoft Visual C++, 32-bit Professional Edition 4.2
This article was previously published under Q155005 SUMMARY
In Visual C++ versions 4.0 and 4.1, the COleDateTime class allows the user
to pass two-digit years when constructing a COleDateTime object or setting
its date. Starting with version 4.2 of Visual C++, you must pass a three-
or four-digit year to COleDateTime. This change in behavior was not
reflected in the documentation provided with Visual C++ version 4.2.
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This bug has been corrected in Visual
C++ versions 5.0 and 6.0.
MORE INFORMATION
The COleDateTime class provided with Visual C++ versions 4.0 and 4.1
automatically converts two-digit years to four-digit values. This
conversion process assumes that the date is in the 20th Century. For
example, the year 96 is converted to 1996 to correct problems that occur
for dates after 12/31/1999; the COleDateTime class no longer performs this
conversion. Starting with version 4.2, the user MUST specify the complete
year. If a two-digit year is specified in version 4.2, subsequent calls to
member functions such as GetYear() will fail.
The online documentation was not updated in Visual C++ version 4.2 to
reflect this change in behavior. Future versions of the documentation will
indicate that 100 - 9999 is the valid range for the year component of
COleDateTime.
Applications written with MFC to target Win32s will probably see this problem because MFC from Visual C++ 4.1 is the last version supported on Win32s.
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbBug kbdocerr kbdocfix kbfix kbVC500fix kbVC600fix KB155005 |
---|
|