Q:

Setting the Time Zone with Compact Framework on Windows Mobile 6

First, background: I have a .Net application that runs in kiosk mode on Windows Mobile 6 devices (IPAQ 210s).  Our software actually tracks the user's time zone independently of the operating system, so we calculate the displayed time based on their time zone adjustment from UTC.  As many may know, true kiosk mode is not easy to achieve on Windows Mobile 6, and final piece of the puzzle for this app is suppressing the DST notifications from the OS.  
My preferred solution to this would be set the device timezone to GMT Casablanca, since it doesn't observe DST.  I've discovered, however, that despite my best efforts (including using the OpenNETCF library) I cannot get the time zone to reliably stick during the device provisioning process.  In the date/time applet in the OS, it looks like the timezone is GMT, but the time is one off from what it should be for that timezone.
Can anyone offer advice as to how to get the timezone change to stick properly?  Or, better yet, does anyone know how to disable the DST notification on WinMob 6?

A:

For whatever reason, the CF actually caches timezone info at startup (I think the full framework does too).  So when you make changes to the timezone, the CF is unaware of those changes.  If you use the GetSystem/LocalTime APIs, you'll get the right time but DateTime.Now will not reflect those changes.
I reported this back in 2004.
On the desktop you have the TimezoneInfo.ClearCachedInfo method, but it doesn't exist in the CF.

