Microsoft Y2K  
Microsoft
 This static CD-based web site is representative of the www.microsoft.com/y2k site as of October 15, 1999.

Microsoft Year 2000 Readiness Disclosure & Resource Center
Windows CE 2.1 (Swedish) - Win CE

Product Summary
Product: Windows CE
Version: 2.1
Category: Compliant#
Operating System: Win CE
Language: Swedish Release Date: 15 Jun 1998
Operational Range: -
Prerequisites: none
Product Dependencies: none
Clock Dependencies: operating system clock and OLEAUT32
Last Updated: 06 Jul 1999
Product Details

Operational Range for Data: Original Equipment Manufacturer (OEM) dependent.

How the product handles dates:

Windows CE stores a compressed year in the OAL (HAL) layer which is controlled by an OEM. It is up to the OEM to store this data with most specifying a 100-year range (i.e. 1950 û 2049). Windows CE takes and returns a 4-digit year except in the OAL layer that talks directly to the hardware. External interfaces for Windows CE are 4-digit years.

Two-digit shortcut handling:

Windows CE does not have any such conversion logic but OLE does. OLE converts a 2-digit date to a 4-digit date using the following rules:

2-Digit 4-Digit

28 2028

29 2029

30 1930

31 1931

OLE programmatically uses 4-Digit dates. The only place that this conversion is used is when an application is supplied a 2-digit string representing a year and OLE is required to convert it. The OS itself does not rely of this conversion.

Common date usage errors:

Windows CE is dependent upon the OEM and their implementation of the OEMÆs real-time clock APIs. The OEM must provide the correct information in their OAL/hardware to maintain proper date handling.

Testing guidelines and recommendations:

We recommend OEMs call GetSystemTime, SetSystemTime, and CeSetUserNotification to ensure the system clock is correct. These APIs will in turn call the OEM real-time clock functions that need to be tested for compliance. The testing would consist of trying to set various dates and then checking the result of these attempts. The OEM functions that will be exercised are OEMSetRealTime, OEMGetRealTime and OEMSetAlarmTime.

What are the Issues?:

1) The number of digits specified for a dateÆs century can be either 2 or 4 (e.g., 98 or 1998). This information is returned when GetLocaleInfo is used to request LOCALE_ICENTURY. The results of a request for the century information is based on the following:

  1. If the default value has not been overridden then the value returned is the default for the locale. The value returned by LOCAL_ICENTURY is based on the format of the default short date (LOCALE_SSHORTDATE). If the format of the short date is "yy" then a 2-digit century format is specified otherwise if the format is "yyyy" then a 4-digit century format is specified.
  2. If SetLocaleInfo is used with LOCALE_ICENTURY to change (override) the current default century format from a 2-digit to a 4-digit century format or vice versa.

The LOCAL_ICENTURY value for the current short date format is not updated to reflect the current century information if:

  1. The Regional Control Panel is used to change the default short date format from a 4-digit year to a 2-digit year, or vice versa.
  2. Using SetLocaleInfo(LOCALE_SSHORTDATE) the default short date format is changed from a 4-digit year to a 2-digit year, or vice versa.

In both cases the value returned for LOCALE_ICENTURY is the same as before the date format was changed. To compensate for this an application can retrieve the short date format and count the number of æyÆs that are in the year format.

2) In the OLE APIs VarDateFromStr() and VarBstrFromDate() there is an ambiguity between their treatment of 2-digit years. OLE has standardized on an interpretation whereby it assumes that 2-digit years lie in the range 1930-2029 (i.e. it interprets 1/1/30 as 1/1/1930 and 1/1/29 and 1/1/2029). This is the range used by the VarDateFromStr() function which converts a string date into an internal unambiguous data format. This is the same behavior as Windows NT and Windows 95.

The reverse function VarBstrFromDate(), which outputs an internal date as a string, outputs a 2-digit year as if the year was in the range 1900-1999. This range does not match the range used by VarDateFromStr() and can result is some strange effects if an app were to use these functions to convert back & forth repeatedly, for example

VarDateFromStr() 1/1/1929 -> internally stored as 1929

VarBstrFromDate() internal 1929 -> output as 1/1/29

VarDateFromStr() 1/1/29 -> internally stored as 2029

VarBstrFromDate() internal 2029 -> output as 1/1/2029

The easiest way to avoid this issue is to not use a 2-digit year.

 

 

Return to Search Screen

Legend of Symbols:
* The product is compliant with recommended customer action. This indicates a prerequisite action is recommended which may include loading a software update or reading a document.
# The product is compliant with an acceptable deviations from Microsoft's standard of compliance. An acceptable deviation does not affect the core functionality, data integrity, stability, or reliability of the product.
+ The product is compliant with pending Year 2000 software updates. Future maintenance actions will be recommended shortly. See Product Guide for further details.
Note: Compliance ratings given for each product assume that all recommended actions have been taken.

If after reviewing this information you have additional questions related to this product, click here.

 

YEAR 2000 READINESS DISCLOSURE

ALL COMMUNICATIONS OR CONVEYANCES OF INFORMATION TO YOU CONCERNING MICROSOFT AND THE YEAR 2000, INCLUDING BUT NOT LIMITED TO THIS DOCUMENT OR ANY OTHER PAST, PRESENT OR FUTURE INFORMATION REGARDING YEAR 2000 TESTING, ASSESSMENTS, READINESS, TIME TABLES, OBJECTIVES, OR OTHER (COLLECTIVELY THE "MICROSOFT YEAR 2000 STATEMENT"), ARE PROVIDED AS A "YEAR 2000 READINESS DISCLOSURE" (AS DEFINED BY THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT) AND CAN BE FOUND AT MICROSOFT'S YEAR 2000 WEBSITE LOCATED AT http://www.microsoft.com/year2000/ (the "Y2K WEBSITE"). EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED PURSUANT TO THE TERMS HEREOF, THE TERMS OF THE Y2K WEBSITE, AND THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT FOR THE SOLE PURPOSE OF ASSISTING THE PLANNING FOR THE TRANSITION TO THE YEAR 2000. EACH MICROSOFT YEAR 2000 STATEMENT CONTAINS INFORMATION CURRENTLY AVAILABLE AND IS UPDATED REGULARLY AND SUBJECT TO CHANGE. MICROSOFT THEREFORE RECOMMENDS THAT YOU CHECK THE Y2K WEBSITE REGULARLY FOR ANY CHANGES TO ANY MICROSOFT YEAR 2000 STATEMENT. EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. CONSEQUENTLY, MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. MOREOVER, MICROSOFT DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF ANY MICROSOFT YEAR 2000 STATEMENT IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY MICROSOFT OR ITS AUTHORIZED REPRESENTATIVES SHALL CREATE A WARRANTY OR IN ANY WAY DECREASE THE SCOPE OF THIS WARRANTY DISCLAIMER. IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER REGARDING ANY MICROSOFT YEAR 2000 STATEMENT INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS, PUNITIVE OR SPECIAL DAMAGES, EVEN IF MICROSOFT OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE FOREGOING LIMITATION MAY NOT APPLY TO YOU. THE INFORMATION CONTAINED IN EACH MICROSOFT YEAR 2000 STATEMENT IS FOUND AT THE Y2K WEBSITE AND IS INTENDED TO BE READ IN CONJUNCTION WITH OTHER INFORMATION LOCATED AT THE Y2K WEBSITE, INCLUDING BUT NOT LIMITED TO MICROSOFT'S YEAR 2000 COMPLIANCE STATEMENT, THE DESCRIPTION OF THE CATEGORIES OF COMPLIANCE INTO WHICH MICROSOFT HAS CLASSIFIED ITS PRODUCTS IN ITS YEAR 2000 PRODUCT GUIDE, AND THE MICROSOFT YEAR 2000 TEST CRITERIA.

ANY MICROSOFT YEAR 2000 STATEMENTS MADE TO YOU IN THE COURSE OF PROVIDING YEAR 2000 RELATED UPDATES, YEAR 2000 DIAGNOSTIC TOOLS, OR REMEDIATION SERVICES (IF ANY) ARE SUBJECT TO THE YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT (112 STAT. 2386). IN CASE OF A DISPUTE, THIS ACT MAY REDUCE YOUR LEGAL RIGHTS REGARDING THE USE OF ANY SUCH STATEMENTS, UNLESS OTHERWISE SPECIFIED BY YOUR CONTRACT OR TARIFF.


 

Friday, August 6, 1999
1999 Microsoft Corporation. All rights reserved. Terms of use.

This site is being designated as a Year 2000 Readiness Disclosure and the information contained herein is provided pursuant to the terms hereof and the Year 2000 Information and Readiness Disclosure Act.