Q:

GetTimeZoneInformation function returns struct with "incorrect" values

I have an issue with calling the function GetTimeZoneInformation on a certain machine. 
Specifically, my machine is set to EST/EDT (auto adjust for DST is disabled) and after a call to the function my TIME_ZONE_INFORMATION struct has an identical StandardName & DaylightName (Eastern Standard Time), and the StandardBias and DaylightBias are both Zero(0) and the return value is Zero(0).
On another machine (with the same EST/EDT zone and disabled auto adjust), the TIME_ZONE_INFORMATION struct shows a StandardName of Eastern Standard Time, but the DaylightName is set to Eastern Daylight Time, and the DaylightBias is equal to -60, and the return value is 0.
Both machines are Windows 7 64bit OS.
I've checked the registry where the auto dst adjust setting is stored and both machines have the same value.
Is this possibly a side effect of a group policy setting? 
Any help would be appreciated. 
Thanks.

A:

For anyone experiencing this issue, I've discovered a fix. Open up Date and Time dialog. Press the Change time zone... button. 
Choose a Time zone that doesn't observe Daylight Saving Time. e.g. Hawaii. Press Ok for the Time Zone Settings dialog, then OK for the Date and Time dialog. 
Open the Date and Time dialog again, open the Time Zone Settings dialog again and select your original time zone (you'll notice at this point that the auto adjust checkbox is checked for all zones that observe DST). 
You can uncheck the Automatically adjust clock for Daylight Saving Time checkbox. 
Press OK for Time Zone Settings. Press OK for Date and Time.
After these steps a call to GetTimeZoneInformation will assgin the TIME_ZONE_INFORMATION struct DaylightName member with the string, in my case, "Eastern Standard Time", and the DaylightBias value of 0.
Cheers.

