I'm sorry, but Microsoft does not get time zones

by Michael S. Kaplan, published on 2007/02/05 17:45 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/02/05/1606868.aspx


Okay, it's official. We still don't know anything whatsoever about reasonable customer time zone experiences at Microsoft.

Now this is the communal we that I am using here, as I take all 76,003 full time employees (exact number may be wrong, but I am not in HR) and say for the record that if the single most visible application we provide in relation to time zones gets it wrong (Microsoft Outlook), that we are getting it wrong as a company. No matter how many people are doing it right, this is just way too lame for words.

Someone from the Outlook team should get in touch with Ken Getz (in re: Time Zone Disaster--All Outlook Appointments Bite the Dust) and at the very least provide an apology and at the very most provide a fix.

In the meantime, I can't claim to officially speak for over 70,000 people in any legal/moral/ethical/social/educational/professional/veterinarial sense, but I'll do my best. 

I'm sorry, Ken. I'll buy you a drink next time we are in the same city. :-(

 

This post brought to you by 𝄵 (U+1d135, a.k.a. MUSICAL SYMBOL CUT TIME)


# Anthony Zoko on 5 Feb 2007 8:19 PM:

MS Released a tool a few days ago which may help affect users

http://www.microsoft.com/downloads/details.aspx?FamilyID=e343a233-b9c8-4652-9dd8-ae0f1af62568&DisplayLang=en

# damieng on 5 Feb 2007 8:27 PM:

With America spanning a few timezones itself it's strange that Microsoft just doesn't get it.

The setting up of a non-US machine might be an eye opener for Microsoft engineer.  The amount of times you have to choose UK/English during an install of XP must be at least 4-5 times.

Maybe timezones and setting regional details should be a team itself spread world-wide - is this how localisation is currently handled?

[)amien

# Michael S. Kaplan on 5 Feb 2007 10:02 PM:

The UK English case is a special one that is worse since there is no actual UK SKU and thus none of the benefits that other language versions can get will show up....

It makes this particular case (and the rest of the problems with non-US English) much worse.

# Mike on 6 Feb 2007 3:51 AM:

Microsoft has made a mess of it for years. We had a Windows CE O/S where daylight saving didn't work in the Southern Hemisphere, and 2 releases of Windows Media Player (v9 and v10) where all tracks labelled in a timezone outside of the Americas (actually every timezone in GMT or forward of GMT) have release year altered by a full year.

None of these releases was ever patched, although frequently reported. We had to wait for years for full new releases for the issue to be addressed.

# Chris Parsons on 13 Feb 2007 1:15 PM:

The fall out over this DST timezone change is hitting us hard despite our software doing things right (so we thought) over the last 10 years.

Our software stores all times in UTC, just like Windows NT does, and converts them to a presentation time using the _tcsftime() (strftime) in the CRT.  Everything has worked great for us as it has correctly calculated all historic times correctly, until now.

Apparently we were naïve, as now historic times are calculated incorrectly due to Windows inability to calculate the correct DST times from previous years, including 2006!  You can try it for yourself, by changing the system clock to March 13th 2006 on a Windows XP machine (or 2000 machine with manual registry patch as suggested in KB914387).  Vista gets it right, but as that represents < 0.1% of our install base it's not much consolation at the moment.

As part of the research to this problem I discovered that new registry entries where supplied as part of this "patch".  There is a new registry subkey called "Dynamic DST" which appears to have a year corrected formula as mentioned in KB928388 and described in the MSDN information for DYNAMIC_TIME_ZONE_INFORMATION http://msdn2.microsoft.com/en-us/library/ms724253.aspx, however this new key appears to be there on XP/2000 merely for a) grins b) confusion c) consistency with Vista that actually uses it.

My countdown for finding a working solution is growing short, and all kinds of nasty hacks have been crossing my mind.  The only workable solution that I can think of so far involves modifying our software to change the TZ environment variable to disable daylight saving and doing a manual calculation using the newly found registry setting by writing an XP equivalent of GetDynamicTimeZoneInformation().

Any and all suggestions welcome.

-Chris

P.S. Yes I did think of lobbying the government to abandon DST and it's questionable value but I discovered that politicians don't do anything unless they are politically motivated to do so.

# Michael S. Kaplan on 13 Feb 2007 3:17 PM:

"Everything has worked great for us as it has correctly calculated all historic times correctly, until now."

Um, this has never, ever, EVER worked. Your code was getting lucky and not needing one of the many time zones that have had changes over the years, that's all.

# Chris Parsons on 13 Feb 2007 3:54 PM:

Then why did they bother to set about "correcting" this on Vista?  Obviously DST times in the US haven't changed for 40 years hence there hasn't been a local need.  Had we sold any of the software to Israel or other country that changes DST on a regular basis then obviously I would have caught this limitation earlier.

Vista understands that for 2006 the dates for DST where April 2nd to October 29th (and so on for previous years) and that 2007 is March 11th to November 4th.  Why wasn't this intelligence retrofitted into XP?  Why bother having the new registry keys if they go unused by the operating system?

# Michael S. Kaplan on 13 Feb 2007 4:29 PM:

Actually, this has been broken for a loing time. We are finally trying to do something about it, but there is more to do here, obviously (as I have pointed out in other posts).

Claiming there was no problem previously is just wrong, as this HAS been a problem for a long time.

I assume the new reg keys were added to the old platform to make the patch easier to run; they are just ignored on earlier platforms so they do no harm?

I cannot speak as to why nothing was retrofitted into earlier versions, it wasn't really up to me to decide though. :-)

# Chris Parsons on 13 Feb 2007 5:21 PM:

I wasn't claiming that it wasn't a problem previously, just that it had never been a problem for us do to our limited deployment in US and Western Europe.  :-)

As those new registry settings are now documented in MSDN do you think that would be a reasonable "global" means of calculating DST historically?  I don't like reading such registry entries directly, but it's the only way I can see to calculate time historically and globally.

# Michael S. Kaplan on 13 Feb 2007 6:23 PM:

Well, since it is documented one has much more of a leg to stand on in regard to backcompat, which is helpful here.

Of course the timeline is limited (no earlier historical info is included), but it sounds like that problem does not worry you as much. :-)


Please consider a donation to keep this archive running, maintained and free of advertising.
Donate €20 or more to receive an offline copy of the whole archive including all images.

referenced by

2008/06/29 Did someone break GetTimeZoneInformation in XP?

2007/03/11 The weirdness of the DST change on SIAO....

go to newer or older post, or back to index or month or day