What I have been able to find is a way to convert from TZID (Olsen) to Windows timezone IDs using this URL: http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html
I'm planning to update the data to support multiple TZID mapping (One Windows TZ -> Multiple TZIDs) in CLDR. I was considering this before, but it's quite a tough task (also keeping data up-to-date is not trivial). It looks you're trying to create mapping data from location to Windows time zone. You would find how difficult to achieve this soon. There are several type of issues. 1) No matching UTC offset in Windows For example, Australia/Eucla uses UTC+08:45 as base offset, but there is no such zones in Windows time zone list. There are several other instances. 2) No matching daylight saving time rule in Windows For example, Pacific/Easter observes daylight saving time from August, 2011 to March 2012. However, Windows does not have any UTC-06:00 zones supporting the daylight saving time rules (Windows UTC-06:00 zones are all Northern Hemisphere type rules). 3) Ambiguous mapping For example, Windows has following time zones with UTC+09:00 / no DST. (UTC+09:00) Osaka, Sapporo, Tokyo (UTC+09:00) Irkutsk (UTC+09:00) Seoul You have to decide one from above for some other territories using UTC+09:00/no DST. For example, Asia/Dili, Asia/Jayapura, Pacific/Palau. 4) Out of date data You may want to map Belarus to (UTC+02:00) Minsk. However, Minsk (Belarus) is currently using UTC+03:00/no DST. Microsoft suggests Windows users in Belarus to use (UTC+03:00) Kakiningrad for now [http://support.microsoft.com/kb/2625508]. -Yoshito