Rectangle 27 1

We use .NET C# MVC and we needed a list of Windows Timezone for Each country.

So that for every registering user we could set the timezone automatically.

Most online databases provide IANA timezones and it's difficult to map to a specific country.

Using NodaTime we managed to create a Json which lists the following entries.

CountryName
2LetterIsoCountryCode
3LetterIsoCountryCode
IANATimezones
WindowsTimezones

You can download the generated JSON here.

I need a mapping list of cities to timezones- best way to get it? - St...

timezone
Rectangle 27 7

The unicode consortium keeps a mapping between Olson database and Windows TimeZone Ids, which can be accessed here.

Also see this SO question and answers for more daylight savings info (Daylight saving time - do and donts).

.net - TimeZoneInfo vs. Olson database - Stack Overflow

.net datetime timezone
Rectangle 27 21

OK, so I have had a bash at putting together a table. I'm quite sure there are lots of inaccuracies and there are many zones that don't map, but it will do for my purposes for now. I've also put the table up at the following URL. If anyone has any corrections or additions, please let me know and I will add/change them.

Olson TZID,UTC Offset,Windows Timezone ID,Windows Display Name
Pacific/Apia,-11,Samoa Standard Time,(UTC-11:00) Samoa
Pacific/Midway,-11,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Niue,-11,Samoa Standard Time,(UTC-11:00) Samoa
Pacific/Pago_Pago,-11,Samoa Standard Time,(UTC-11:00) Samoa
America/Adak,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Fakaofo,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Honolulu,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Johnston,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Rarotonga,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Tahiti,-10,Hawaiian Standard Time,(UTC-10:00) Hawaii
Pacific/Marquesas,-9.5,Hawaiian Standard Time,(UTC-10:00) Hawaii
America/Anchorage,-9,Alaskan Standard Time,(UTC-09:00) Alaska
America/Juneau,-9,Alaskan Standard Time,(UTC-09:00) Alaska
America/Nome,-9,Alaskan Standard Time,(UTC-09:00) Alaska
America/Yakutat,-9,Alaskan Standard Time,(UTC-09:00) Alaska
Pacific/Gambier,-9,Alaskan Standard Time,(UTC-09:00) Alaska
America/Dawson,-8,Pacific Standard Time,(UTC-08:00) Pacific Time (US & Canada) 
America/Los_Angeles,-8,Pacific Standard Time,(UTC-08:00) Pacific Time (US & Canada) 
America/Santa_Isabel,-8,Pacific Standard Time (Mexico),(UTC-08:00) Baja California
America/Tijuana,-8,Pacific Standard Time (Mexico),(UTC-08:00) Baja California
America/Vancouver,-8,Pacific Standard Time,(UTC-08:00) Pacific Time (US & Canada) 
America/Whitehorse,-8,Pacific Standard Time,(UTC-08:00) Pacific Time (US & Canada) 
Pacific/Pitcairn,-8,Pacific Standard Time,(UTC-08:00) Pacific Time (US & Canada) 
America/Boise,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Cambridge_Bay,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Chihuahua,-7,Mountain Standard Time (Mexico),"(UTC-07:00) Chihuahua, La Paz, Mazatlan"
America/Dawson_Creek,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Denver,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Edmonton,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Hermosillo,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Inuvik,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Mazatlan,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Ojinaga,-7,US Mountain Standard Time,(UTC-07:00) Arizona
America/Phoenix,-7,US Mountain Standard Time,(UTC-07:00) Arizona
America/Shiprock,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Yellowknife,-7,Mountain Standard Time,(UTC-07:00) Mountain Time (US & Canada)
America/Belize,-6,Central America Standard Time,(UTC-06:00) Central America
America/Cancun,-6,Central Standard Time (Mexico),"(UTC-06:00) Guadalajara, Mexico City, Monterrey"
America/Chicago,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Costa_Rica,-6,Central America Standard Time,(UTC-06:00) Central America
America/El_Salvador,-6,Central America Standard Time,(UTC-06:00) Central America
America/Guatemala,-6,Central America Standard Time,(UTC-06:00) Central America
America/Indiana/Knox,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Indiana/Tell_City,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Managua,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Matamoros,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Menominee,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Merida,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Mexico_City,-6,Central Standard Time (Mexico),"(UTC-06:00) Guadalajara, Mexico City, Monterrey"
America/Monterrey,-6,Central Standard Time (Mexico),"(UTC-06:00) Guadalajara, Mexico City, Monterrey"
America/North_Dakota/Center,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/North_Dakota/New_Salem,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Rainy_River,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Rankin_Inlet,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Regina,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Swift_Current,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Tegucigalpa,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
America/Winnipeg,-6,Central Standard Time,(UTC-06:00) Central Time (US & Canada)
Pacific/Easter,-6,Central America Standard Time,(UTC-06:00) Central America
Pacific/Galapagos,-6,Central America Standard Time,(UTC-06:00) Central America
America/Atikokan,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Bogota,-5,SA Pacific Standard Time,"(UTC-05:00) Bogota, Lima, Quito"
America/Cayman,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Detroit,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Grand_Turk,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Guayaquil,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Havana,-5,SA Pacific Standard Time,"(UTC-05:00) Bogota, Lima, Quito"
America/Indiana/Indianapolis,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Indiana/Marengo,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Indiana/Petersburg,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Indiana/Vevay,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Indiana/Vincennes,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Indiana/Winamac,-5,US Eastern Standard Time,(UTC-05:00) Indiana (East)
America/Iqaluit,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Jamaica,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Kentucky/Louisville,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Kentucky/Monticello,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Lima,-5,SA Pacific Standard Time,"(UTC-05:00) Bogota, Lima, Quito"
America/Montreal,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Nassau,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/New_York,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Nipigon,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Panama,-5,SA Pacific Standard Time,"(UTC-05:00) Bogota, Lima, Quito"
America/Pangnirtung,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Port-au-Prince,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Resolute,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Thunder_Bay,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Toronto,-5,Eastern Standard Time,(UTC-05:00) Eastern Time (US & Canada)
America/Caracas,-4.5,Venezuela Standard Time,(UTC-04:30) Caracas
America/Anguilla,-4,Pacific SA Standard Time,(UTC-04:00) Santiago
America/Antigua,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Aruba,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Asuncion,-4,Paraguay Standard Time,(UTC-04:00) Asuncion
America/Barbados,-4,Pacific SA Standard Time,(UTC-04:00) Santiago
America/Blanc-Sablon,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Boa_Vista,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Campo_Grande,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Cuiaba,-4,Central Brazilian Standard Time,(UTC-04:00) Cuiaba
America/Curacao,-4,Central Brazilian Standard Time,(UTC-04:00) Cuiaba
America/Dominica,-4,Pacific SA Standard Time,(UTC-04:00) Santiago
America/Eirunepe,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Glace_Bay,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Goose_Bay,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Grenada,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Guadeloupe,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Guyana,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Halifax,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/La_Paz,-4,SA Western Standard Time,"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan"
America/Manaus,-4,SA Western Standard Time,"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan"
America/Marigot,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Martinique,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Moncton,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Montserrat,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Port_of_Spain,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Porto_Velho,-4,Central Brazilian Standard Time,(UTC-04:00) Cuiaba
America/Puerto_Rico,-4,Central Brazilian Standard Time,(UTC-04:00) Cuiaba
America/Rio_Branco,-4,Central Brazilian Standard Time,(UTC-04:00) Cuiaba
America/Santiago,-4,Pacific SA Standard Time,(UTC-04:00) Santiago
America/Santo_Domingo,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Barthelemy,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Kitts,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Lucia,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Thomas,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Vincent,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Thule,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/Tortola,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
Antarctica/Palmer,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
Atlantic/Bermuda,-4,Atlantic Standard Time,(UTC-04:00) Atlantic Time (Canada)
America/St_Johns,-3.5,Newfoundland Standard Time,(UTC-03:30) Newfoundland
America/Araguaina,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Argentina/Buenos_Aires,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Catamarca,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Cordoba,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Jujuy,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/La_Rioja,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Mendoza,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Rio_Gallegos,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Salta,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/San_Juan,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/San_Luis,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Tucuman,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Argentina/Ushuaia,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Bahia,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Belem,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Cayenne,-3,SA Eastern Standard Time,"(UTC-03:00) Cayenne, Fortaleza"
America/Fortaleza,-3,SA Eastern Standard Time,"(UTC-03:00) Cayenne, Fortaleza"
America/Godthab,-3,Greenland Standard Time,(UTC-03:00) Greenland 
America/Maceio,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Miquelon,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Montevideo,-3,Montevideo Standard Time,(UTC-03:00) Montevideo
America/Paramaribo,-3,SA Eastern Standard Time,"(UTC-03:00) Cayenne, Fortaleza"
America/Recife,-3,SA Eastern Standard Time,"(UTC-03:00) Cayenne, Fortaleza"
America/Santarem,-3,E. South America Standard Time,(UTC-03:00) Brasilia
America/Sao_Paulo,-3,E. South America Standard Time,(UTC-03:00) Brasilia
Antarctica/Rothera,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
Atlantic/Stanley,-3,Argentina Standard Time,(UTC-03:00) Buenos Aires
America/Noronha,-2,Mid-Atlantic Standard Time,(UTC-02:00) Mid-Atlantic
Atlantic/South_Georgia,-2,Mid-Atlantic Standard Time,(UTC-02:00) Mid-Atlantic
America/Scoresbysund,-1,Azores Standard Time,(UTC-01:00) Azores
Atlantic/Azores,-1,Azores Standard Time,(UTC-01:00) Azores
Atlantic/Cape_Verde,-1,Cape Verde Standard Time,(UTC-01:00) Cape Verde Is.
Africa/Abidjan,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Accra,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Bamako,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Banjul,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Bissau,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Casablanca,0,Morocco Standard Time,(UTC) Casablanca
Africa/Conakry,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Dakar,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/El_Aaiun,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Freetown,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Lome,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Monrovia,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Nouakchott,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Ouagadougou,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Africa/Sao_Tome,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
America/Danmarkshavn,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Antarctica/Vostok,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Atlantic/Canary,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Atlantic/Faroe,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Atlantic/Madeira,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Atlantic/Reykjavik,0,Greenwich Standard Time,"(UTC) Monrovia, Reykjavik"
Atlantic/St_Helena,0,Greenwich Standard Time,"(UTC) Monrovia, Reykjavik"
Europe/Dublin,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Europe/Guernsey,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Europe/Isle_of_Man,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Europe/Jersey,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Europe/Lisbon,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
Europe/London,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
GMT,0,GMT Standard Time,"(UTC) Dublin, Edinburgh, Lisbon, London"
UTC,0,UTC,(UTC) Coordinated Universal Time
Africa/Algiers,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Bangui,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Brazzaville,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Ceuta,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Douala,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Kinshasa,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Lagos,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Libreville,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Luanda,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Malabo,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Ndjamena,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Niamey,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Porto-Novo,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Tunis,1,W. Central Africa Standard Time,(UTC+01:00) West Central Africa
Africa/Windhoek,1,Namibia Standard Time,(UTC+01:00) Windhoek
Arctic/Longyearbyen,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Amsterdam,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Andorra,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Belgrade,1,Central Europe Standard Time,"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
Europe/Berlin,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Bratislava,1,Central Europe Standard Time,"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
Europe/Brussels,1,Romance Standard Time,"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"
Europe/Budapest,1,Central Europe Standard Time,"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
Europe/Copenhagen,1,Romance Standard Time,"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"
Europe/Gibraltar,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Ljubljana,1,Central Europe Standard Time,"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
Europe/Luxembourg,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Madrid,1,Romance Standard Time,"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"
Europe/Malta,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Monaco,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Oslo,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Paris,1,Romance Standard Time,"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"
Europe/Podgorica,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Prague,1,Central Europe Standard Time,"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
Europe/Rome,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/San_Marino,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Sarajevo,1,Central Europe Standard Time,"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
Europe/Skopje,1,Central Europe Standard Time,"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
Europe/Stockholm,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Tirane,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Vaduz,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Vatican,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Vienna,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Europe/Warsaw,1,Central Europe Standard Time,"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
Europe/Zagreb,1,Central Europe Standard Time,"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
Europe/Zurich,1,W. Europe Standard Time,"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
Africa/Blantyre,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Bujumbura,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Cairo,2,Egypt Standard Time,(UTC+02:00) Cairo
Africa/Gaborone,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Harare,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Johannesburg,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Kigali,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Lubumbashi,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Lusaka,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Maputo,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Maseru,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Mbabane,2,South Africa Standard Time,"(UTC+02:00) Harare, Pretoria"
Africa/Tripoli,2,Middle East Standard Time,(UTC+02:00) Beirut
Asia/Amman,2,Jordan Standard Time,(UTC+02:00) Amman
Asia/Beirut,2,Middle East Standard Time,(UTC+02:00) Beirut
Asia/Damascus,2,Syria Standard Time,(UTC+02:00) Damascus
Asia/Gaza,2,Middle East Standard Time,(UTC+02:00) Beirut
Asia/Jerusalem,2,Israel Standard Time,(UTC+02:00) Jerusalem 
Asia/Nicosia,2,GTB Standard Time,"(UTC+02:00) Athens, Bucharest"
Europe/Athens,2,GTB Standard Time,"(UTC+02:00) Athens, Bucharest"
Europe/Bucharest,2,GTB Standard Time,"(UTC+02:00) Athens, Bucharest"
Europe/Chisinau,2,E. Europe Standard Time,(UTC+02:00) Minsk
Europe/Helsinki,2,FLE Standard Time,"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
Europe/Istanbul,2,Turkey Standard Time,(UTC+02:00) Istanbul 
Europe/Kiev,2,E. Europe Standard Time,(UTC+02:00) Minsk
Europe/Mariehamn,2,E. Europe Standard Time,(UTC+02:00) Minsk
Europe/Riga,2,FLE Standard Time,"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
Europe/Simferopol,2,E. Europe Standard Time,(UTC+02:00) Minsk
Europe/Sofia,2,FLE Standard Time,"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
Europe/Tallinn,2,FLE Standard Time,"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
Europe/Uzhgorod,2,E. Europe Standard Time,(UTC+02:00) Minsk
Europe/Vilnius,2,FLE Standard Time,"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
Europe/Zaporozhye,2,E. Europe Standard Time,(UTC+02:00) Minsk
Africa/Addis_Ababa,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Asmara,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Dar_es_Salaam,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Djibouti,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Juba,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Kampala,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Khartoum,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Mogadishu,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Africa/Nairobi,3,E. Africa Standard Time,(UTC+03:00) Nairobi
Antarctica/Syowa,3,Kaliningrad Standard Time,(UTC+03:00) Kaliningrad
Asia/Aden,3,Kaliningrad Standard Time,(UTC+03:00) Kaliningrad
Asia/Baghdad,3,Arabic Standard Time,(UTC+03:00) Baghdad
Asia/Bahrain,3,Arabic Standard Time,(UTC+03:00) Baghdad
Asia/Kuwait,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Asia/Qatar,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Asia/Riyadh,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Europe/Kaliningrad,3,Kaliningrad Standard Time,(UTC+03:00) Kaliningrad
Europe/Minsk,3,Kaliningrad Standard Time,(UTC+03:00) Kaliningrad
Indian/Antananarivo,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Indian/Comoro,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Indian/Mayotte,3,Arab Standard Time,"(UTC+03:00) Kuwait, Riyadh"
Asia/Tehran,3.5,Iran Standard Time,(UTC+03:30) Tehran 
Asia/Baku,4,Caucasus Standard Time,(UTC+04:00) Yerevan
Asia/Dubai,4,Arabian Standard Time,"(UTC+04:00) Abu Dhabi, Muscat"
Asia/Muscat,4,Arabian Standard Time,"(UTC+04:00) Abu Dhabi, Muscat"
Asia/Tbilisi,4,Georgian Standard Time,(UTC+04:00) Tbilisi 
Asia/Yerevan,4,Caucasus Standard Time,(UTC+04:00) Yerevan
Europe/Moscow,4,Russian Standard Time,"(UTC+04:00) Moscow, St. Petersburg, Volgograd"
Europe/Samara,4,Russian Standard Time,"(UTC+04:00) Moscow, St. Petersburg, Volgograd"
Europe/Volgograd,4,Russian Standard Time,"(UTC+04:00) Moscow, St. Petersburg, Volgograd"
Indian/Mahe,4,Mauritius Standard Time,(UTC+04:00) Port Louis 
Indian/Mauritius,4,Mauritius Standard Time,(UTC+04:00) Port Louis 
Indian/Reunion,4,Mauritius Standard Time,(UTC+04:00) Port Louis 
Asia/Kabul,4.5,Afghanistan Standard Time,(UTC+04:30) Kabul
Asia/Aqtau,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Aqtobe,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Ashgabat,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Dushanbe,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Karachi,5,Pakistan Standard Time,"(UTC+05:00) Islamabad, Karachi"
Asia/Oral,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Samarkand,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Tashkent,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Indian/Kerguelen,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Indian/Maldives,5,West Asia Standard Time,(UTC+05:00) Tashkent 
Asia/Colombo,5.5,Sri Lanka Standard Time,(UTC+05:30) Sri Jayawardenepura
Asia/Kolkata,5.5,India Standard Time,"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi"
Asia/Kathmandu,5.75,Nepal Standard Time,(UTC+05:45) Kathmandu
Antarctica/Mawson,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Almaty,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Bishkek,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Dhaka,6,Bangladesh Standard Time,(UTC+06:00) Dhaka
Asia/Qyzylorda,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Thimphu,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Yekaterinburg,6,Ekaterinburg Standard Time,(UTC+06:00) Ekaterinburg
Indian/Chagos,6,Central Asia Standard Time,(UTC+06:00) Astana
Asia/Rangoon,6.5,Myanmar Standard Time,(UTC+06:30) Yangon (Rangoon)
Indian/Cocos,6.5,Myanmar Standard Time,(UTC+06:30) Yangon (Rangoon)
Antarctica/Davis,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Bangkok,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Ho_Chi_Minh,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Hovd,7,N. Central Asia Standard Time,(UTC+07:00) Novosibirsk
Asia/Jakarta,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Novokuznetsk,7,N. Central Asia Standard Time,(UTC+07:00) Novosibirsk
Asia/Novosibirsk,7,N. Central Asia Standard Time,(UTC+07:00) Novosibirsk
Asia/Omsk,7,N. Central Asia Standard Time,(UTC+07:00) Novosibirsk
Asia/Phnom_Penh,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Pontianak,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Asia/Vientiane,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Indian/Christmas,7,SE Asia Standard Time,"(UTC+07:00) Bangkok, Hanoi, Jakarta"
Antarctica/Casey,8,W. Australia Standard Time,(UTC+08:00) Perth
Asia/Brunei,8,North Asia Standard Time,(UTC+08:00) Krasnoyarsk
Asia/Choibalsan,8,China Standard Time,"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi"
Asia/Chongqing,8,China Standard Time,"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi"
Asia/Harbin,8,China Standard Time,"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi"
Asia/Hong_Kong,8,China Standard Time,"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi"
.... Cut ....

Had to cut due to restrictions on post size - get the full CSV at the linked address.

timezone - Converting Olson TZID to Windows Time Zone - Stack Overflow

windows timezone
Rectangle 27 10

I've just written a small Java utility that provides a list of Windows time zones (the zones in the time zone selection dialog in Windows), and their associated Java TimeZone objects. See https://github.com/nfergu/Java-Time-Zone-List

Nice job on the TimeZoneList. Thanks for mapping all the Microsoft timezones to Java IDs.

TimeZones in Java - Stack Overflow

java timezone
Rectangle 27 10

I've just written a small Java utility that provides a list of Windows time zones (the zones in the time zone selection dialog in Windows), and their associated Java TimeZone objects. See https://github.com/nfergu/Java-Time-Zone-List

Nice job on the TimeZoneList. Thanks for mapping all the Microsoft timezones to Java IDs.

TimeZones in Java - Stack Overflow

java timezone
Rectangle 27 3

The problem with a static table is that it has to be maintained as changes to the TZDB and CLDR are released.

The better solution is to use a library that can do the conversions for you, and will stay on top of the updates for you.

Noda Time is the perfect choice for this. I have already documented how to convert between IANA/Olson and Windows time zones in this post: How to translate between Windows and IANA time zones?

As new updates to the TZDB and CLDR are released, you can simply get the latest version of Noda Time, or you can update it manually by following the instructions here.

At the time I put the table together I didn't know about Noda Time, and would certainly have used it if I had. Saying that, the table has still been pretty useful over the last couple of years.

Agreed. And actually, Noda Time was just in the early phases then, and didn't have the full CLDR data until recently. So yours was a good solution for the time, but I thought I should provide a more updated answer for those that find this post linked to other questions.

Indeed, this info should definitely be here and its great that a maintained library now includes this functionality.

timezone - Converting Olson TZID to Windows Time Zone - Stack Overflow

windows timezone
Rectangle 27 1

I recently needed this mapping for a c++ application. The unicode mapping covers most of the zones but there are a few issues.

First, many of the olson/tz ids have aliases. The ids used in the unicode mapping do not include these aliases. For a more complete mapping your application needs to also understand aliases.

For example, the unicode mapping has no definition for 'America/Argentina/Buenos_Aires', but looking in the above file we see that 'America/Argentina/Buenos_Aires' is in fact an alias for 'America/Buenos_Aires' which does exist in the mapping file.

Second, there are some olson/tz ids that are not mappable to any Windows time zone. This can happen because Windows doesn't have a time zone with the same offset or DST rules. In these cases there really is no conversion possible. Most of these zones are small islands, so it could be an edge case not worth considering.

Is your remark about the aliases not existing in the mapping still true? You are referring to the windowsZones.xml file correct? From what I see, there currently is a section for "America/Buenos_Aires" and "America/Argentina/Buenos_Aires". The olson name is duplicated for both entries. The only issue I see remaining are the "Unmappable Olson Time Zones" from the link you provided. These make sense that they don't map and aren't related to the name issue caused by aliases.

The aliases do not exist in the windowsZones.xml (unicode.org/repos/cldr/trunk/common/supplemental/), but they do exist in timezone.xml (unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml) that I linked to above. If you search windowsZones.xml for 'Buenos' you'll find 'America/Buenos_Aires', but not 'America/Argentina/Buenos_Aires'.

Ok I see now. I saw a group that included America/Buenos_Aires in the "AR" territory and this looked like the aliases.

timezone - Converting Olson TZID to Windows Time Zone - Stack Overflow

windows timezone
Rectangle 27 2

As far as I can tell, no browser returns 'EDT' from toLocaleString, on windows anyway, and only Chrome returns the timezone at all.

Other platforms may assign the string differently.

My bigger beef is that Chrome uses a 24 hour clock for local time.

They all return the hours:minutes:seconds in a group, so to exclude anything after the time you could:

var d=new Date().toLocaleString();
var s= d.toLocaleString().match(/^[^:]+(:\d\d){2} *(am|pm)\b/i)[0];

returned value: (Chrome)
Tue Jun 14 2011 15:26:11:11

Another way is to concat the locale day and time strings, which, surprisingly, does not return the timezone on chrome- but your milage may vary.

var D=new Date();
D.toLocaleDateString()+' '+D.toLocaleTimeString()

Best way to remove 'EDT' from a date returned via javascript with toLo...

javascript date formatting edt
Rectangle 27 2

You should add to your Location record a string value called TimeZone. You would need to populate it with a time zone identifier, which would be either a Windows time zone ID or an IANA time zone ID. See the timezone tag wiki for an explanation of the differences. You then use that time zone to determine the local time that applies for the corresponding UTC time.

My recommendation is to use an IANA time zones, as they are available across platforms and languages, rather than just being locked down to Windows and .NET. The are the de facto standard for time zones. To use them in .NET, use the Noda Time library:

using NodaTime;
...
DateTimeZone tz = DateTimeZoneProviders.Tzdb[location.TimeZone];
Instant instant = Instant.FromDateTimeUtc(theUtcDateTime);
LocalTime localTime = instant.InZone(tz).TimeOfDay;

The alternative is to use Windows time zones with the TimeZoneInfo object that comes with .NET:

TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(location.TimeZone);
DateTime localDateTime = TimeZoneInfo.ConvertTimeFromUtc(theUtcDateTime, tz);
TimeSpan localTime = localDateTime.TimeOfDay;

c# - Converting UTC to Local Time - How do I store/deduce the local ti...

c# datetime timezone datetimeoffset
Rectangle 27 3

This looks familiar to Ruby on Rails time APIs which use "friendly" timezone names instead of the standard "America/Los_Angeles". Which, as suggested in another answer, might actually be Windows names.

This led me to this discussion about TimeZones in Java, and from there to a Github repo that provides these Windows names for Java programs.

Looks like you are going to have to wrap your date-time stuff in a translation layer that you borrow or write yourself.

They're not Rails time zones, though I can see how you could be led to think that. Also the mapping in that github repo has not been maintained, and it maps Windows IDs - not the cludgy partial display names that Yammer appears to be using.

java - How to parse time zone string "Pacific Time (US & Canada)" on J...

java timezone jodatime yammer
Rectangle 27 3

This looks familiar to Ruby on Rails time APIs which use "friendly" timezone names instead of the standard "America/Los_Angeles". Which, as suggested in another answer, might actually be Windows names.

This led me to this discussion about TimeZones in Java, and from there to a Github repo that provides these Windows names for Java programs.

Looks like you are going to have to wrap your date-time stuff in a translation layer that you borrow or write yourself.

They're not Rails time zones, though I can see how you could be led to think that. Also the mapping in that github repo has not been maintained, and it maps Windows IDs - not the cludgy partial display names that Yammer appears to be using.

java - How to parse time zone string "Pacific Time (US & Canada)" on J...

java timezone jodatime yammer
Rectangle 27 2

I think PHP doesn't take the Windows DST setting into account. Timezones are interpreted according to the defined standard. Also according to last time this came up: Daylight savings time not correct even after setting timezone

But see http://php.net/manual/en/function.date-default-timezone-set.php There is some example code using WShell to query the Win registry for the actual values, including the DST flag. Then using timezone_abbreviations_list() you can find an alias with the correct timezone name and DST flag, set this.

Getting Windows Time in PHP - Stack Overflow

php time dst
Rectangle 27 1

Here's an example of a very popular format for describing timezones (though not what Windows uses).

You can see that it's more than a simple offset. More along the lines of offsets and the set of rules (changing over time) for when to use which offset.

utc - Is timezone just an offset number or "more information"? - Stack...

timezone utc timezoneoffset
Rectangle 27 5

Due to how .NET implements Time Zones, there's no built-in way to do a 1:1 conversion. You will have to resort to using 3rd party libraries (or implement your own conversion).

This question asks for a very similar solution to what you are looking for.

Lastly, you can use Noda Time, which implements this very functionality you are looking for. Jon Skeet's answer gives an early look at the library's development back in 2011.

The library's Key Concepts page contains a Date/Time Zone block explaining the conversion functionality.

Here's an example on how to create such a lookup table:

// Note: this version lets you work with any IDateTimeZoneSource, although as the only
// other built-in source is BclDateTimeZoneSource, that may be less useful :)
private static IDictionary<string, string> LoadTimeZoneMap(IDateTimeZoneSource source)
{
    var nodaToWindowsMap = new Dictionary<string, string>();
    foreach (var bclZone in TimeZoneInfo.GetSystemTimeZones())
    {
        var nodaId = source.MapTimeZoneId(bclZone);
        if (nodaId != null)
        {
            nodaToWindowsMap[nodaId] = bclZone.Id;
        }
    }
    return nodaToWindowsMap;
}

c# - Why am i getting this timezone error and is there a better way to...

c# datetime google-maps-api-3 timezone
Rectangle 27 1

This is just a guess, but MSDN docs on SetSystemTime (the underlying function you're calling) say that it works in UTC which by definition does not have any concept of daylight savings time. I assume that windows is just "doing what you tell it" and the fact that the time is "illegal" (in terms of how we express local times) doesn't really come into play.

Using SetLocalTime might do what you want, although the docs on that state that it uses "current timezone information" (presumably user, not system) to determine daylight savings, which may also not be what you want for a reproducible test.

c# - Why can't I set my system time to a time near daylight saving tra...

c# .net datetime timezone dst
Rectangle 27 1

http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

If the timezone is not found on the given machine there is NO GUARANTEED WORKAROUND. You should have your code create an error message stating why there was a problem.

You do realize that it is possible for the owner/admin of a given system to change those settings, or add new ones - meaning non-standard tz names not in the tz database.

I don't have any control of the input info bits coming from a persons contact info that i don't have control over

c# - Why am i getting this timezone error and is there a better way to...

c# datetime google-maps-api-3 timezone
Rectangle 27 0

It discusses using powershell, you may need to have access to the server, but perhaps it will help if your looking for a way to access programatically.

net time \\SERVER_NAME

c# - Is there a builtin service to get the time (and timezone) from a ...

c# timezone
Rectangle 27 0

Changing the system time in Windows 8 does auto change my Firefox browser timezone without reboot or relaunch of the sofware.

Works in linux too (linux mint) just changed the system timezone and loaded chrome. Used pellepim.bitbucket.org/jstz to test

internationalization - Fake time zone for web app testing - Stack Over...

internationalization timezone
Rectangle 27 0

You can usually rely on the local time being accurate, as displayed by the clock. Any Windows machine is setup to talk to a time server, the default is time.windows.com. The user will notice a discrepancy with the rest of the clocks in his house. Getting daylight saving transition dates wrong is certainly possible. But then you don't want to overrule the user's settings, he may well live in a county that's close to the timezone border and opted out of DST or a place that just made up their own rules, like an American Indian tribal area.

Making such decisions about remote places in the world is an entirely different ball of wax. Notable is the island of Samoa, it hopped across timezones in 2011, even crossing the date line from UTC-11 to UTC+13. Daylight savings rules are always affected by local political decisions, they don't make the top of the news in your local newspaper. Some odds that a it does make it to a web service. Mapping a city to a timezone is in itself something that requires an extensive database. If absolute accuracy is required then you really do need a service.

That extensive database you speak of is the IANA TZDB. It's incorporated into Noda Time, and can be updated as frequently as new TZDB releases come out. Most of the services out there base their response on this same data, but don't necessarily update as frequently as you might require in your own applications.

Thanks Hans. Daylight savings is a PITA to handle and hence I was looking at using a web service. Due to costs involved (and also response speed), an offline solution like NodaTime seems ideal for this since it has the database built in.

c# - Converting time between different time zones - Stack Overflow

c# windows datetime windows-store-apps nodatime
Rectangle 27 0

Here's an example of a very popular format for describing timezones (though not what Windows uses).

You can see that it's more than a simple offset. More along the lines of offsets and the set of rules (changing over time) for when to use which offset.

utc - Is timezone just an offset number or "more information"? - Stack...

timezone utc timezoneoffset