xcat-core/xCAT-server/lib/perl/xCAT/TZUtils.pm
2012-05-18 17:40:45 +00:00

700 lines
31 KiB
Perl

package xCAT::TZUtils;
my %posixtowintimezonemap = (
"Etc/GMT+12" => "Dateline Standard Time",
"Etc/GMT+12" => "Dateline Standard Time",
"Etc/GMT+11" => "UTC-11",
"Pacific/Pago_Pago" => "UTC-11",
"Pacific/Niue" => "UTC-11",
"Pacific/Midway" => "UTC-11",
"Etc/GMT+11" => "UTC-11",
"Pacific/Honolulu" => "Hawaiian Standard Time",
"Pacific/Rarotonga" => "Hawaiian Standard Time",
"Pacific/Tahiti" => "Hawaiian Standard Time",
"Pacific/Johnston" => "Hawaiian Standard Time",
"Pacific/Honolulu" => "Hawaiian Standard Time",
"Etc/GMT+10" => "Hawaiian Standard Time",
"America/Anchorage" => "Alaskan Standard Time",
"America/Anchorage" => "Alaskan Standard Time",
"America/Juneau" => "Alaskan Standard Time",
"America/Nome" => "Alaskan Standard Time",
"America/Sitka" => "Alaskan Standard Time",
"America/Yakutat" => "Alaskan Standard Time",
"America/Santa_Isabel" => "Pacific Standard Time (Mexico)",
"America/Santa_Isabel" => "Pacific Standard Time (Mexico)",
"America/Los_Angeles" => "Pacific Standard Time",
"America/Vancouver" => "Pacific Standard Time",
"America/Dawson" => "Pacific Standard Time",
"America/Whitehorse" => "Pacific Standard Time",
"America/Tijuana" => "Pacific Standard Time",
"America/Los_Angeles" => "Pacific Standard Time",
"PST8PDT" => "Pacific Standard Time",
"America/Phoenix" => "US Mountain Standard Time",
"America/Dawson_Creek" => "US Mountain Standard Time",
"America/Creston" => "US Mountain Standard Time",
"America/Hermosillo" => "US Mountain Standard Time",
"America/Phoenix" => "US Mountain Standard Time",
"Etc/GMT+7" => "US Mountain Standard Time",
"America/Chihuahua" => "Mountain Standard Time (Mexico)",
"America/Chihuahua" => "Mountain Standard Time (Mexico)",
"America/Mazatlan" => "Mountain Standard Time (Mexico)",
"America/Denver" => "Mountain Standard Time",
"America/Edmonton" => "Mountain Standard Time",
"America/Cambridge_Bay" => "Mountain Standard Time",
"America/Inuvik" => "Mountain Standard Time",
"America/Yellowknife" => "Mountain Standard Time",
"America/Ojinaga" => "Mountain Standard Time",
"America/Denver" => "Mountain Standard Time",
"America/Boise" => "Mountain Standard Time",
"America/Shiprock" => "Mountain Standard Time",
"MST7MDT" => "Mountain Standard Time",
"America/Guatemala" => "Central America Standard Time",
"America/Belize" => "Central America Standard Time",
"America/Costa_Rica" => "Central America Standard Time",
"Pacific/Galapagos" => "Central America Standard Time",
"America/Guatemala" => "Central America Standard Time",
"America/Tegucigalpa" => "Central America Standard Time",
"America/Managua" => "Central America Standard Time",
"America/El_Salvador" => "Central America Standard Time",
"Etc/GMT+6" => "Central America Standard Time",
"America/Chicago" => "Central Standard Time",
"America/Winnipeg" => "Central Standard Time",
"America/Rainy_River" => "Central Standard Time",
"America/Rankin_Inlet" => "Central Standard Time",
"America/Resolute" => "Central Standard Time",
"America/Matamoros" => "Central Standard Time",
"America/Chicago" => "Central Standard Time",
"America/Indiana/Knox" => "Central Standard Time",
"America/Indiana/Tell_City" => "Central Standard Time",
"America/Menominee" => "Central Standard Time",
"America/North_Dakota/Beulah" => "Central Standard Time",
"America/North_Dakota/Center" => "Central Standard Time",
"America/North_Dakota/New_Salem" => "Central Standard Time",
"CST6CDT" => "Central Standard Time",
"America/Mexico_City" => "Central Standard Time (Mexico)",
"America/Mexico_City" => "Central Standard Time (Mexico)",
"America/Bahia_Banderas" => "Central Standard Time (Mexico)",
"America/Cancun" => "Central Standard Time (Mexico)",
"America/Merida" => "Central Standard Time (Mexico)",
"America/Monterrey" => "Central Standard Time (Mexico)",
"America/Regina" => "Canada Central Standard Time",
"America/Regina" => "Canada Central Standard Time",
"America/Swift_Current" => "Canada Central Standard Time",
"America/Bogota" => "SA Pacific Standard Time",
"America/Coral_Harbour" => "SA Pacific Standard Time",
"America/Bogota" => "SA Pacific Standard Time",
"America/Guayaquil" => "SA Pacific Standard Time",
"America/Port-au-Prince" => "SA Pacific Standard Time",
"America/Jamaica" => "SA Pacific Standard Time",
"America/Cayman" => "SA Pacific Standard Time",
"America/Panama" => "SA Pacific Standard Time",
"America/Lima" => "SA Pacific Standard Time",
"Etc/GMT+5" => "SA Pacific Standard Time",
"America/New_York" => "Eastern Standard Time",
"America/Nassau" => "Eastern Standard Time",
"America/Toronto" => "Eastern Standard Time",
"America/Iqaluit" => "Eastern Standard Time",
"America/Montreal" => "Eastern Standard Time",
"America/Nipigon" => "Eastern Standard Time",
"America/Pangnirtung" => "Eastern Standard Time",
"America/Thunder_Bay" => "Eastern Standard Time",
"America/Grand_Turk" => "Eastern Standard Time",
"America/New_York" => "Eastern Standard Time",
"America/Detroit" => "Eastern Standard Time",
"America/Indiana/Petersburg" => "Eastern Standard Time",
"America/Indiana/Vincennes" => "Eastern Standard Time",
"America/Indiana/Winamac" => "Eastern Standard Time",
"America/Kentucky/Monticello" => "Eastern Standard Time",
"America/Louisville" => "Eastern Standard Time",
"EST5EDT" => "Eastern Standard Time",
"America/Indianapolis" => "US Eastern Standard Time",
"America/Indianapolis" => "US Eastern Standard Time",
"America/Indiana/Marengo" => "US Eastern Standard Time",
"America/Indiana/Vevay" => "US Eastern Standard Time",
"America/Caracas" => "Venezuela Standard Time",
"America/Caracas" => "Venezuela Standard Time",
"America/Asuncion" => "Paraguay Standard Time",
"America/Asuncion" => "Paraguay Standard Time",
"America/Halifax" => "Atlantic Standard Time",
"Atlantic/Bermuda" => "Atlantic Standard Time",
"America/Halifax" => "Atlantic Standard Time",
"America/Glace_Bay" => "Atlantic Standard Time",
"America/Goose_Bay" => "Atlantic Standard Time",
"America/Moncton" => "Atlantic Standard Time",
"America/Thule" => "Atlantic Standard Time",
"America/Cuiaba" => "Central Brazilian Standard Time",
"America/Cuiaba" => "Central Brazilian Standard Time",
"America/Campo_Grande" => "Central Brazilian Standard Time",
"America/La_Paz" => "SA Western Standard Time",
"America/Antigua" => "SA Western Standard Time",
"America/Anguilla" => "SA Western Standard Time",
"America/Aruba" => "SA Western Standard Time",
"America/Barbados" => "SA Western Standard Time",
"America/St_Barthelemy" => "SA Western Standard Time",
"America/La_Paz" => "SA Western Standard Time",
"America/Kralendijk" => "SA Western Standard Time",
"America/Manaus" => "SA Western Standard Time",
"America/Boa_Vista" => "SA Western Standard Time",
"America/Eirunepe" => "SA Western Standard Time",
"America/Porto_Velho" => "SA Western Standard Time",
"America/Rio_Branco" => "SA Western Standard Time",
"America/Blanc-Sablon" => "SA Western Standard Time",
"America/Curacao" => "SA Western Standard Time",
"America/Dominica" => "SA Western Standard Time",
"America/Santo_Domingo" => "SA Western Standard Time",
"America/Grenada" => "SA Western Standard Time",
"America/Guadeloupe" => "SA Western Standard Time",
"America/Guyana" => "SA Western Standard Time",
"America/St_Kitts" => "SA Western Standard Time",
"America/St_Lucia" => "SA Western Standard Time",
"America/Marigot" => "SA Western Standard Time",
"America/Martinique" => "SA Western Standard Time",
"America/Montserrat" => "SA Western Standard Time",
"America/Puerto_Rico" => "SA Western Standard Time",
"America/Lower_Princes" => "SA Western Standard Time",
"America/Port_of_Spain" => "SA Western Standard Time",
"America/St_Vincent" => "SA Western Standard Time",
"America/Tortola" => "SA Western Standard Time",
"America/St_Thomas" => "SA Western Standard Time",
"Etc/GMT+4" => "SA Western Standard Time",
"America/Santiago" => "Pacific SA Standard Time",
"Antarctica/Palmer" => "Pacific SA Standard Time",
"America/Santiago" => "Pacific SA Standard Time",
"America/St_Johns" => "Newfoundland Standard Time",
"America/St_Johns" => "Newfoundland Standard Time",
"America/Sao_Paulo" => "E. South America Standard Time",
"America/Sao_Paulo" => "E. South America Standard Time",
"America/Buenos_Aires" => "Argentina Standard Time",
"America/Buenos_Aires" => "Argentina Standard Time",
"America/Argentina/La_Rioja" => "Argentina Standard Time",
"America/Argentina/Rio_Gallegos" => "Argentina Standard Time",
"America/Argentina/Salta" => "Argentina Standard Time",
"America/Argentina/San_Juan" => "Argentina Standard Time",
"America/Argentina/San_Luis" => "Argentina Standard Time",
"America/Argentina/Tucuman" => "Argentina Standard Time",
"America/Argentina/Ushuaia" => "Argentina Standard Time",
"America/Catamarca" => "Argentina Standard Time",
"America/Cordoba" => "Argentina Standard Time",
"America/Jujuy" => "Argentina Standard Time",
"America/Mendoza" => "Argentina Standard Time",
"America/Cayenne" => "SA Eastern Standard Time",
"Antarctica/Rothera" => "SA Eastern Standard Time",
"America/Fortaleza" => "SA Eastern Standard Time",
"America/Araguaina" => "SA Eastern Standard Time",
"America/Belem" => "SA Eastern Standard Time",
"America/Maceio" => "SA Eastern Standard Time",
"America/Recife" => "SA Eastern Standard Time",
"America/Santarem" => "SA Eastern Standard Time",
"Atlantic/Stanley" => "SA Eastern Standard Time",
"America/Cayenne" => "SA Eastern Standard Time",
"America/Paramaribo" => "SA Eastern Standard Time",
"Etc/GMT+3" => "SA Eastern Standard Time",
"America/Godthab" => "Greenland Standard Time",
"America/Godthab" => "Greenland Standard Time",
"America/Montevideo" => "Montevideo Standard Time",
"America/Montevideo" => "Montevideo Standard Time",
"America/Bahia" => "Bahia Standard Time",
"America/Bahia" => "Bahia Standard Time",
"Etc/GMT+2" => "UTC-02",
"America/Noronha" => "UTC-02",
"Atlantic/South_Georgia" => "UTC-02",
"Etc/GMT+2" => "UTC-02",
"Atlantic/Azores" => "Azores Standard Time",
"America/Scoresbysund" => "Azores Standard Time",
"Atlantic/Azores" => "Azores Standard Time",
"Atlantic/Cape_Verde" => "Cape Verde Standard Time",
"Atlantic/Cape_Verde" => "Cape Verde Standard Time",
"Etc/GMT+1" => "Cape Verde Standard Time",
"Africa/Casablanca" => "Morocco Standard Time",
"Africa/Casablanca" => "Morocco Standard Time",
"Etc/GMT" => "UTC",
"America/Danmarkshavn" => "UTC",
"Etc/GMT" => "UTC",
"Europe/London" => "GMT Standard Time",
"Atlantic/Canary" => "GMT Standard Time",
"Atlantic/Faeroe" => "GMT Standard Time",
"Europe/London" => "GMT Standard Time",
"Europe/Guernsey" => "GMT Standard Time",
"Europe/Dublin" => "GMT Standard Time",
"Europe/Isle_of_Man" => "GMT Standard Time",
"Europe/Jersey" => "GMT Standard Time",
"Europe/Lisbon" => "GMT Standard Time",
"Atlantic/Madeira" => "GMT Standard Time",
"Atlantic/Reykjavik" => "Greenwich Standard Time",
"Africa/Ouagadougou" => "Greenwich Standard Time",
"Africa/Abidjan" => "Greenwich Standard Time",
"Africa/El_Aaiun" => "Greenwich Standard Time",
"Africa/Accra" => "Greenwich Standard Time",
"Africa/Banjul" => "Greenwich Standard Time",
"Africa/Conakry" => "Greenwich Standard Time",
"Africa/Bissau" => "Greenwich Standard Time",
"Atlantic/Reykjavik" => "Greenwich Standard Time",
"Africa/Monrovia" => "Greenwich Standard Time",
"Africa/Bamako" => "Greenwich Standard Time",
"Africa/Nouakchott" => "Greenwich Standard Time",
"Atlantic/St_Helena" => "Greenwich Standard Time",
"Africa/Freetown" => "Greenwich Standard Time",
"Africa/Dakar" => "Greenwich Standard Time",
"Africa/Sao_Tome" => "Greenwich Standard Time",
"Africa/Lome" => "Greenwich Standard Time",
"Europe/Berlin" => "W. Europe Standard Time",
"Europe/Andorra" => "W. Europe Standard Time",
"Europe/Vienna" => "W. Europe Standard Time",
"Europe/Zurich" => "W. Europe Standard Time",
"Europe/Berlin" => "W. Europe Standard Time",
"Europe/Gibraltar" => "W. Europe Standard Time",
"Europe/Rome" => "W. Europe Standard Time",
"Europe/Vaduz" => "W. Europe Standard Time",
"Europe/Luxembourg" => "W. Europe Standard Time",
"Europe/Monaco" => "W. Europe Standard Time",
"Europe/Malta" => "W. Europe Standard Time",
"Europe/Amsterdam" => "W. Europe Standard Time",
"Europe/Oslo" => "W. Europe Standard Time",
"Europe/Stockholm" => "W. Europe Standard Time",
"Arctic/Longyearbyen" => "W. Europe Standard Time",
"Europe/San_Marino" => "W. Europe Standard Time",
"Europe/Vatican" => "W. Europe Standard Time",
"Europe/Budapest" => "Central Europe Standard Time",
"Europe/Tirane" => "Central Europe Standard Time",
"Europe/Prague" => "Central Europe Standard Time",
"Europe/Budapest" => "Central Europe Standard Time",
"Europe/Podgorica" => "Central Europe Standard Time",
"Europe/Belgrade" => "Central Europe Standard Time",
"Europe/Ljubljana" => "Central Europe Standard Time",
"Europe/Bratislava" => "Central Europe Standard Time",
"Europe/Paris" => "Romance Standard Time",
"Europe/Brussels" => "Romance Standard Time",
"Europe/Copenhagen" => "Romance Standard Time",
"Europe/Madrid" => "Romance Standard Time",
"Africa/Ceuta" => "Romance Standard Time",
"Europe/Paris" => "Romance Standard Time",
"Europe/Warsaw" => "Central European Standard Time",
"Europe/Sarajevo" => "Central European Standard Time",
"Europe/Zagreb" => "Central European Standard Time",
"Europe/Skopje" => "Central European Standard Time",
"Europe/Warsaw" => "Central European Standard Time",
"Africa/Lagos" => "W. Central Africa Standard Time",
"Africa/Luanda" => "W. Central Africa Standard Time",
"Africa/Porto-Novo" => "W. Central Africa Standard Time",
"Africa/Kinshasa" => "W. Central Africa Standard Time",
"Africa/Bangui" => "W. Central Africa Standard Time",
"Africa/Brazzaville" => "W. Central Africa Standard Time",
"Africa/Douala" => "W. Central Africa Standard Time",
"Africa/Algiers" => "W. Central Africa Standard Time",
"Africa/Libreville" => "W. Central Africa Standard Time",
"Africa/Malabo" => "W. Central Africa Standard Time",
"Africa/Niamey" => "W. Central Africa Standard Time",
"Africa/Lagos" => "W. Central Africa Standard Time",
"Africa/Ndjamena" => "W. Central Africa Standard Time",
"Africa/Tunis" => "W. Central Africa Standard Time",
"Etc/GMT-1" => "W. Central Africa Standard Time",
"Africa/Windhoek" => "Namibia Standard Time",
"Africa/Windhoek" => "Namibia Standard Time",
"Asia/Amman" => "Jordan Standard Time",
"Asia/Amman" => "Jordan Standard Time",
"Europe/Bucharest" => "GTB Standard Time",
"Europe/Athens" => "GTB Standard Time",
"Europe/Chisinau" => "GTB Standard Time",
"Europe/Bucharest" => "GTB Standard Time",
"Asia/Beirut" => "Middle East Standard Time",
"Asia/Beirut" => "Middle East Standard Time",
"Africa/Cairo" => "Egypt Standard Time",
"Africa/Cairo" => "Egypt Standard Time",
"Asia/Gaza" => "Egypt Standard Time",
"Asia/Hebron" => "Egypt Standard Time",
"Asia/Damascus" => "Syria Standard Time",
"Asia/Damascus" => "Syria Standard Time",
"Africa/Johannesburg" => "South Africa Standard Time",
"Africa/Bujumbura" => "South Africa Standard Time",
"Africa/Gaborone" => "South Africa Standard Time",
"Africa/Lubumbashi" => "South Africa Standard Time",
"Africa/Maseru" => "South Africa Standard Time",
"Africa/Tripoli" => "South Africa Standard Time",
"Africa/Blantyre" => "South Africa Standard Time",
"Africa/Maputo" => "South Africa Standard Time",
"Africa/Kigali" => "South Africa Standard Time",
"Africa/Mbabane" => "South Africa Standard Time",
"Africa/Johannesburg" => "South Africa Standard Time",
"Africa/Lusaka" => "South Africa Standard Time",
"Africa/Harare" => "South Africa Standard Time",
"Etc/GMT-2" => "South Africa Standard Time",
"Europe/Kiev" => "FLE Standard Time",
"Europe/Mariehamn" => "FLE Standard Time",
"Europe/Sofia" => "FLE Standard Time",
"Europe/Tallinn" => "FLE Standard Time",
"Europe/Helsinki" => "FLE Standard Time",
"Europe/Vilnius" => "FLE Standard Time",
"Europe/Riga" => "FLE Standard Time",
"Europe/Kiev" => "FLE Standard Time",
"Europe/Simferopol" => "FLE Standard Time",
"Europe/Uzhgorod" => "FLE Standard Time",
"Europe/Zaporozhye" => "FLE Standard Time",
"Europe/Istanbul" => "Turkey Standard Time",
"Europe/Istanbul" => "Turkey Standard Time",
"Asia/Jerusalem" => "Israel Standard Time",
"Asia/Jerusalem" => "Israel Standard Time",
"Asia/Nicosia" => "E. Europe Standard Time",
"Asia/Nicosia" => "E. Europe Standard Time",
"Asia/Baghdad" => "Arabic Standard Time",
"Asia/Baghdad" => "Arabic Standard Time",
"Europe/Kaliningrad" => "Kaliningrad Standard Time",
"Europe/Minsk" => "Kaliningrad Standard Time",
"Europe/Kaliningrad" => "Kaliningrad Standard Time",
"Asia/Riyadh" => "Arab Standard Time",
"Asia/Bahrain" => "Arab Standard Time",
"Asia/Kuwait" => "Arab Standard Time",
"Asia/Qatar" => "Arab Standard Time",
"Asia/Riyadh" => "Arab Standard Time",
"Asia/Aden" => "Arab Standard Time",
"Africa/Nairobi" => "E. Africa Standard Time",
"Antarctica/Syowa" => "E. Africa Standard Time",
"Africa/Djibouti" => "E. Africa Standard Time",
"Africa/Asmera" => "E. Africa Standard Time",
"Africa/Addis_Ababa" => "E. Africa Standard Time",
"Africa/Nairobi" => "E. Africa Standard Time",
"Indian/Comoro" => "E. Africa Standard Time",
"Indian/Antananarivo" => "E. Africa Standard Time",
"Africa/Khartoum" => "E. Africa Standard Time",
"Africa/Mogadishu" => "E. Africa Standard Time",
"Africa/Juba" => "E. Africa Standard Time",
"Africa/Dar_es_Salaam" => "E. Africa Standard Time",
"Africa/Kampala" => "E. Africa Standard Time",
"Indian/Mayotte" => "E. Africa Standard Time",
"Etc/GMT-3" => "E. Africa Standard Time",
"Asia/Tehran" => "Iran Standard Time",
"Asia/Tehran" => "Iran Standard Time",
"Asia/Dubai" => "Arabian Standard Time",
"Asia/Dubai" => "Arabian Standard Time",
"Asia/Muscat" => "Arabian Standard Time",
"Etc/GMT-4" => "Arabian Standard Time",
"Asia/Baku" => "Azerbaijan Standard Time",
"Asia/Baku" => "Azerbaijan Standard Time",
"Europe/Moscow" => "Russian Standard Time",
"Europe/Moscow" => "Russian Standard Time",
"Europe/Samara" => "Russian Standard Time",
"Europe/Volgograd" => "Russian Standard Time",
"Indian/Mauritius" => "Mauritius Standard Time",
"Indian/Mauritius" => "Mauritius Standard Time",
"Indian/Reunion" => "Mauritius Standard Time",
"Indian/Mahe" => "Mauritius Standard Time",
"Asia/Tbilisi" => "Georgian Standard Time",
"Asia/Tbilisi" => "Georgian Standard Time",
"Asia/Yerevan" => "Caucasus Standard Time",
"Asia/Yerevan" => "Caucasus Standard Time",
"Asia/Kabul" => "Afghanistan Standard Time",
"Asia/Kabul" => "Afghanistan Standard Time",
"Asia/Karachi" => "Pakistan Standard Time",
"Asia/Karachi" => "Pakistan Standard Time",
"Asia/Tashkent" => "West Asia Standard Time",
"Antarctica/Mawson" => "West Asia Standard Time",
"Asia/Oral" => "West Asia Standard Time",
"Asia/Aqtau" => "West Asia Standard Time",
"Asia/Aqtobe" => "West Asia Standard Time",
"Indian/Maldives" => "West Asia Standard Time",
"Indian/Kerguelen" => "West Asia Standard Time",
"Asia/Dushanbe" => "West Asia Standard Time",
"Asia/Ashgabat" => "West Asia Standard Time",
"Asia/Tashkent" => "West Asia Standard Time",
"Asia/Samarkand" => "West Asia Standard Time",
"Etc/GMT-5" => "West Asia Standard Time",
"Asia/Calcutta" => "India Standard Time",
"Asia/Calcutta" => "India Standard Time",
"Asia/Colombo" => "Sri Lanka Standard Time",
"Asia/Colombo" => "Sri Lanka Standard Time",
"Asia/Katmandu" => "Nepal Standard Time",
"Asia/Katmandu" => "Nepal Standard Time",
"Asia/Almaty" => "Central Asia Standard Time",
"Antarctica/Vostok" => "Central Asia Standard Time",
"Indian/Chagos" => "Central Asia Standard Time",
"Asia/Bishkek" => "Central Asia Standard Time",
"Asia/Almaty" => "Central Asia Standard Time",
"Asia/Qyzylorda" => "Central Asia Standard Time",
"Etc/GMT-6" => "Central Asia Standard Time",
"Asia/Dhaka" => "Bangladesh Standard Time",
"Asia/Dhaka" => "Bangladesh Standard Time",
"Asia/Thimphu" => "Bangladesh Standard Time",
"Asia/Yekaterinburg" => "Ekaterinburg Standard Time",
"Asia/Yekaterinburg" => "Ekaterinburg Standard Time",
"Asia/Rangoon" => "Myanmar Standard Time",
"Indian/Cocos" => "Myanmar Standard Time",
"Asia/Rangoon" => "Myanmar Standard Time",
"Asia/Bangkok" => "SE Asia Standard Time",
"Antarctica/Davis" => "SE Asia Standard Time",
"Indian/Christmas" => "SE Asia Standard Time",
"Asia/Jakarta" => "SE Asia Standard Time",
"Asia/Pontianak" => "SE Asia Standard Time",
"Asia/Phnom_Penh" => "SE Asia Standard Time",
"Asia/Vientiane" => "SE Asia Standard Time",
"Asia/Hovd" => "SE Asia Standard Time",
"Asia/Bangkok" => "SE Asia Standard Time",
"Asia/Saigon" => "SE Asia Standard Time",
"Etc/GMT-7" => "SE Asia Standard Time",
"Asia/Novosibirsk" => "N. Central Asia Standard Time",
"Asia/Novosibirsk" => "N. Central Asia Standard Time",
"Asia/Novokuznetsk" => "N. Central Asia Standard Time",
"Asia/Omsk" => "N. Central Asia Standard Time",
"Asia/Shanghai" => "China Standard Time",
"Asia/Shanghai" => "China Standard Time",
"Asia/Chongqing" => "China Standard Time",
"Asia/Harbin" => "China Standard Time",
"Asia/Kashgar" => "China Standard Time",
"Asia/Urumqi" => "China Standard Time",
"Asia/Hong_Kong" => "China Standard Time",
"Asia/Macau" => "China Standard Time",
"Asia/Krasnoyarsk" => "North Asia Standard Time",
"Asia/Krasnoyarsk" => "North Asia Standard Time",
"Asia/Singapore" => "Singapore Standard Time",
"Asia/Brunei" => "Singapore Standard Time",
"Asia/Makassar" => "Singapore Standard Time",
"Asia/Kuala_Lumpur" => "Singapore Standard Time",
"Asia/Kuching" => "Singapore Standard Time",
"Asia/Manila" => "Singapore Standard Time",
"Asia/Singapore" => "Singapore Standard Time",
"Etc/GMT-8" => "Singapore Standard Time",
"Australia/Perth" => "W. Australia Standard Time",
"Antarctica/Casey" => "W. Australia Standard Time",
"Australia/Perth" => "W. Australia Standard Time",
"Asia/Taipei" => "Taipei Standard Time",
"Asia/Taipei" => "Taipei Standard Time",
"Asia/Ulaanbaatar" => "Ulaanbaatar Standard Time",
"Asia/Ulaanbaatar" => "Ulaanbaatar Standard Time",
"Asia/Choibalsan" => "Ulaanbaatar Standard Time",
"Asia/Irkutsk" => "North Asia East Standard Time",
"Asia/Irkutsk" => "North Asia East Standard Time",
"Asia/Tokyo" => "Tokyo Standard Time",
"Asia/Jayapura" => "Tokyo Standard Time",
"Asia/Tokyo" => "Tokyo Standard Time",
"Pacific/Palau" => "Tokyo Standard Time",
"Asia/Dili" => "Tokyo Standard Time",
"Etc/GMT-9" => "Tokyo Standard Time",
"Asia/Seoul" => "Korea Standard Time",
"Asia/Pyongyang" => "Korea Standard Time",
"Asia/Seoul" => "Korea Standard Time",
"Australia/Adelaide" => "Cen. Australia Standard Time",
"Australia/Adelaide" => "Cen. Australia Standard Time",
"Australia/Broken_Hill" => "Cen. Australia Standard Time",
"Australia/Darwin" => "AUS Central Standard Time",
"Australia/Darwin" => "AUS Central Standard Time",
"Australia/Brisbane" => "E. Australia Standard Time",
"Australia/Brisbane" => "E. Australia Standard Time",
"Australia/Lindeman" => "E. Australia Standard Time",
"Australia/Sydney" => "AUS Eastern Standard Time",
"Australia/Sydney" => "AUS Eastern Standard Time",
"Australia/Melbourne" => "AUS Eastern Standard Time",
"Pacific/Port_Moresby" => "West Pacific Standard Time",
"Antarctica/DumontDUrville" => "West Pacific Standard Time",
"Pacific/Truk" => "West Pacific Standard Time",
"Pacific/Guam" => "West Pacific Standard Time",
"Pacific/Saipan" => "West Pacific Standard Time",
"Pacific/Port_Moresby" => "West Pacific Standard Time",
"Etc/GMT-10" => "West Pacific Standard Time",
"Australia/Hobart" => "Tasmania Standard Time",
"Australia/Hobart" => "Tasmania Standard Time",
"Australia/Currie" => "Tasmania Standard Time",
"Asia/Yakutsk" => "Yakutsk Standard Time",
"Asia/Yakutsk" => "Yakutsk Standard Time",
"Pacific/Guadalcanal" => "Central Pacific Standard Time",
"Antarctica/Macquarie" => "Central Pacific Standard Time",
"Pacific/Ponape" => "Central Pacific Standard Time",
"Pacific/Kosrae" => "Central Pacific Standard Time",
"Pacific/Noumea" => "Central Pacific Standard Time",
"Pacific/Guadalcanal" => "Central Pacific Standard Time",
"Pacific/Efate" => "Central Pacific Standard Time",
"Etc/GMT-11" => "Central Pacific Standard Time",
"Asia/Vladivostok" => "Vladivostok Standard Time",
"Asia/Vladivostok" => "Vladivostok Standard Time",
"Asia/Sakhalin" => "Vladivostok Standard Time",
"Pacific/Auckland" => "New Zealand Standard Time",
"Antarctica/South_Pole" => "New Zealand Standard Time",
"Antarctica/McMurdo" => "New Zealand Standard Time",
"Pacific/Auckland" => "New Zealand Standard Time",
"Etc/GMT-12" => "UTC+12",
"Pacific/Tarawa" => "UTC+12",
"Pacific/Majuro" => "UTC+12",
"Pacific/Kwajalein" => "UTC+12",
"Pacific/Nauru" => "UTC+12",
"Pacific/Funafuti" => "UTC+12",
"Pacific/Wake" => "UTC+12",
"Pacific/Wallis" => "UTC+12",
"Etc/GMT-12" => "UTC+12",
"Pacific/Fiji" => "Fiji Standard Time",
"Pacific/Fiji" => "Fiji Standard Time",
"Asia/Magadan" => "Magadan Standard Time",
"Asia/Magadan" => "Magadan Standard Time",
"Asia/Anadyr" => "Magadan Standard Time",
"Asia/Kamchatka" => "Magadan Standard Time",
"Pacific/Tongatapu" => "Tonga Standard Time",
"Pacific/Enderbury" => "Tonga Standard Time",
"Pacific/Tongatapu" => "Tonga Standard Time",
"Etc/GMT-13" => "Tonga Standard Time",
"Pacific/Apia" => "Samoa Standard Time",
"Pacific/Apia" => "Samoa Standard Time",
);
my %wintimezonenummap = (#despite certain elements *requiring* this number, this mapping is actually hard to find as MS themselves seem to not use it anymore even
"Dateline Standard Time" => 0,
"(GMT-12:00) International Date Line West" => 0,
"Samoa Standard Time" => 1,
"(GMT-11:00) Midway Island, Samoa" => 1,
"Hawaiian Standard Time" => 2,
"(GMT-10:00) Hawaii" => 2,
"Alaskan Standard Time" => 3,
"(GMT-09:00) Alaska" => 3,
"Pacific Standard Time" => 4,
"(GMT-08:00) Pacific Time (US and Canada); Tijuana" => 4,
"Mountain Standard Time" => 10,
"(GMT-07:00) Mountain Time (US and Canada)" => 10,
"Mexico Standard Time 2" => 13,
"(GMT-07:00) Chihuahua, La Paz, Mazatlan" => 13,
"U.S. Mountain Standard Time" => 15,
"(GMT-07:00) Arizona" => 15,
"Central Standard Time" => 20,
"(GMT-06:00) Central Time (US and Canada)" => 20,
"Canada Central Standard Time" => 25,
"(GMT-06:00) Saskatchewan" => 25,
"Mexico Standard Time" => 30,
"(GMT-06:00) Guadalajara, Mexico City, Monterrey" => 30,
"Central America Standard Time" => 33,
"(GMT-06:00) Central America" => 33,
"Eastern Standard Time" => 35,
"(GMT-05:00) Eastern Time (US and Canada)" => 35,
"U.S. Eastern Standard Time" => 40,
"(GMT-05:00) Indiana (East)" => 40,
"S.A. Pacific Standard Time" => 45,
"(GMT-05:00) Bogota, Lima, Quito" => 45,
"Atlantic Standard Time" => 50,
"(GMT-04:00) Atlantic Time (Canada)" => 50,
"S.A. Western Standard Time" => 55,
"(GMT-04:00) Caracas, La Paz" => 55,
"Pacific S.A. Standard Time" => 56,
"(GMT-04:00) Santiago" => 56,
"Newfoundland and Labrador Standard Time" => 60,
"(GMT-03:30) Newfoundland and Labrador" => 60,
"E. South America Standard Time" => 65,
"(GMT-03:00) Brasilia" => 65,
"S.A. Eastern Standard Time" => 70,
"(GMT-03:00) Buenos Aires, Georgetown" => 70,
"Greenland Standard Time" => 73,
"(GMT-03:00) Greenland" => 73,
"Mid-Atlantic Standard Time" => 75,
"(GMT-02:00) Mid-Atlantic" => 75,
"Azores Standard Time" => 80,
"(GMT-01:00) Azores" => 80,
"Cape Verde Standard Time" => 83,
"(GMT-01:00) Cape Verde Islands" => 83,
"GMT Standard Time" => 85,
"(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London" => 85,
"Greenwich Standard Time" => 90,
"(GMT) Casablanca, Monrovia" => 90,
"Central Europe Standard Time" => 95,
"(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague" => 95,
"Central European Standard Time" => 100,
"(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb" => 100,
"Romance Standard Time" => 105,
"(GMT+01:00) Brussels, Copenhagen, Madrid, Paris" => 105,
"W. Europe Standard Time" => 110,
"(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna" => 110,
"W. Central Africa Standard Time" => 113,
"(GMT+01:00) West Central Africa" => 113,
"E. Europe Standard Time" => 115,
"(GMT+02:00) Bucharest" => 115,
"Egypt Standard Time" => 120,
"(GMT+02:00) Cairo" => 120,
"FLE Standard Time" => 125,
"(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius" => 125,
"GTB Standard Time" => 130,
"(GMT+02:00) Athens, Istanbul, Minsk" => 130,
"Israel Standard Time" => 135,
"(GMT+02:00) Jerusalem" => 135,
"South Africa Standard Time" => 140,
"(GMT+02:00) Harare, Pretoria" => 140,
"Russian Standard Time" => 145,
"(GMT+03:00) Moscow, St. Petersburg, Volgograd" => 145,
"Arab Standard Time" => 150,
"(GMT+03:00) Kuwait, Riyadh" => 150,
"E. Africa Standard Time" => 155,
"(GMT+03:00) Nairobi" => 155,
"Arabic Standard Time" => 158,
"(GMT+03:00) Baghdad" => 158,
"Iran Standard Time" => 160,
"(GMT+03:30) Tehran" => 160,
"Arabian Standard Time" => 165,
"(GMT+04:00) Abu Dhabi, Muscat" => 165,
"Caucasus Standard Time" => 170,
"(GMT+04:00) Baku, Tbilisi, Yerevan" => 170,
"Transitional Islamic State of Afghanistan Std." => 175,
"(GMT+04:30) Kabul" => 175,
"Ekaterinburg Standard Time" => 180,
"(GMT+05:00) Ekaterinburg" => 180,
"West Asia Standard Time" => 185,
"(GMT+05:00) Islamabad, Karachi, Tashkent" => 185,
"India Standard Time" => 190,
"(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi" => 190,
"Nepal Standard Time" => 193,
"(GMT+05:45) Kathmandu" => 193,
"Central Asia Standard Time" => 195,
"(GMT+06:00) Astana, Dhaka" => 195,
"Sri Lanka Standard Time" => 200,
"(GMT+06:00) Sri Jayawardenepura" => 200,
"N. Central Asia Standard Time" => 201,
"(GMT+06:00) Almaty, Novosibirsk" => 201,
"Myanmar Standard Time" => 203,
"(GMT+06:30) Yangon (Rangoon)" => 203,
"S.E. Asia Standard Time" => 205,
"(GMT+07:00) Bangkok, Hanoi, Jakarta" => 205,
"North Asia Standard Time" => 207,
"(GMT+07:00) Krasnoyarsk" => 207,
"China Standard Time" => 210,
"(GMT+08:00) Beijing, Chongqing, Hong Kong SAR, Urumqi" => 210,
"Singapore Standard Time" => 215,
"(GMT+08:00) Kuala Lumpur, Singapore" => 215,
"Taipei Standard Time" => 220,
"(GMT+08:00) Taipei" => 220,
"W. Australia Standard Time" => 225,
"(GMT+08:00) Perth" => 225,
"North Asia East Standard Time" => 227,
"(GMT+08:00) Irkutsk, Ulaan Bataar" => 227,
"Korea Standard Time" => 230,
"(GMT+09:00) Seoul" => 230,
"Tokyo Standard Time" => 235,
"(GMT+09:00) Osaka, Sapporo, Tokyo" => 235,
"Yakutsk Standard Time" => 240,
"(GMT+09:00) Yakutsk" => 240,
"A.U.S. Central Standard Time" => 245,
"(GMT+09:30) Darwin" => 245,
"Cen. Australia Standard Time" => 250,
"(GMT+09:30) Adelaide" => 250,
"A.U.S. Eastern Standard Time" => 255,
"(GMT+10:00) Canberra, Melbourne, Sydney" => 255,
"E. Australia Standard Time" => 260,
"(GMT+10:00) Brisbane" => 260,
"Tasmania Standard Time" => 265,
"(GMT+10:00) Hobart" => 265,
"Vladivostok Standard Time" => 270,
"(GMT+10:00) Vladivostok" => 270,
"West Pacific Standard Time" => 275,
"(GMT+10:00) Guam, Port Moresby" => 275,
"Central Pacific Standard Time" => 280,
"(GMT+11:00) Magadan, Solomon Islands, New Caledonia" => 280,
"Fiji Islands Standard Time" => 285,
"(GMT+12:00) Fiji Islands, Kamchatka, Marshall Islands" => 285,
"New Zealand Standard Time" => 290,
"(GMT+12:00) Auckland, Wellington" => 290,
"Tonga Standard Time" => 300,
"(GMT+13:00) Nuku'alofa" => 300,
);
sub get_wintimezone {
if ($::XCATSITEVALS{'wintimezone'}) {
return $::XCATSITEVALS{'wintimezone'};
} elsif ($::XCATSITEVALS{'timezone'}) {
return $posixtowintimezonemap{$::XCATSITEVALS{'timezone'}};
}
}
sub get_wintimezonenum {
my $wintimezone = get_wintimezone();
return $wintimezonenummap{$wintimezone};
};
1;