exchangelib.winzone API documentation
Description: A dict to translate from IANA location name to Windows timezone name. Translations taken from CLDR_WINZONE_URL

# Module `exchangelib.winzone`

A dict to translate from IANA location name to Windows timezone name. Translations taken from CLDR_WINZONE_URL

Expand source code

    """A dict to translate from IANA location name to Windows timezone name. Translations taken from CLDR_WINZONE_URL
    """
    import re

    import requests

    from .util import to_xml

    CLDR_WINZONE_URL = "https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/windowsZones.xml"
    DEFAULT_TERRITORY = "001"
    CLDR_WINZONE_TYPE_VERSION = "2021a"
    CLDR_WINZONE_OTHER_VERSION = "7e11800"

    def generate_map(timeout=10):
        """Create a new CLDR_TO_MS_TIMEZONE_MAP map from the CLDR data. Used when the CLDR database is updated.

        :param timeout:  (Default value = 10)
        :return:
        """
        r = requests.get(CLDR_WINZONE_URL, timeout=timeout)
        if r.status_code != 200:
            raise ValueError(f"Unexpected response: {r}")
        tz_map = {}
        timezones_elem = to_xml(r.content).find("windowsZones").find("mapTimezones")
        type_version = timezones_elem.get("typeVersion")
        other_version = timezones_elem.get("otherVersion")
        for e in timezones_elem.findall("mapZone"):
            for location in re.split(r"\s+", e.get("type")):
                if e.get("territory") == DEFAULT_TERRITORY or location not in tz_map:
                    # Prefer default territory. This is so MS_TIMEZONE_TO_IANA_MAP maps from MS timezone ID back to the
                    # "preferred" region/location timezone name.
                    tz_map[location] = e.get("other"), e.get("territory")
        return type_version, other_version, tz_map

    # This map is generated irregularly from generate_map(). Do not edit manually - make corrections to
    # IANA_TO_MS_TIMEZONE_MAP instead. We provide this map to avoid hammering the CLDR_WINZONE_URL.
    #
    # This list was generated from CLDR_WINZONE_URL version CLDR_WINZONE_VERSION.
    CLDR_TO_MS_TIMEZONE_MAP = {
        "Africa/Abidjan": ("Greenwich Standard Time", "CI"),
        "Africa/Accra": ("Greenwich Standard Time", "GH"),
        "Africa/Addis_Ababa": ("E. Africa Standard Time", "ET"),
        "Africa/Algiers": ("W. Central Africa Standard Time", "DZ"),
        "Africa/Asmera": ("E. Africa Standard Time", "ER"),
        "Africa/Bamako": ("Greenwich Standard Time", "ML"),
        "Africa/Bangui": ("W. Central Africa Standard Time", "CF"),
        "Africa/Banjul": ("Greenwich Standard Time", "GM"),
        "Africa/Bissau": ("Greenwich Standard Time", "GW"),
        "Africa/Blantyre": ("South Africa Standard Time", "MW"),
        "Africa/Brazzaville": ("W. Central Africa Standard Time", "CG"),
        "Africa/Bujumbura": ("South Africa Standard Time", "BI"),
        "Africa/Cairo": ("Egypt Standard Time", "001"),
        "Africa/Casablanca": ("Morocco Standard Time", "001"),
        "Africa/Ceuta": ("Romance Standard Time", "ES"),
        "Africa/Conakry": ("Greenwich Standard Time", "GN"),
        "Africa/Dakar": ("Greenwich Standard Time", "SN"),
        "Africa/Dar_es_Salaam": ("E. Africa Standard Time", "TZ"),
        "Africa/Djibouti": ("E. Africa Standard Time", "DJ"),
        "Africa/Douala": ("W. Central Africa Standard Time", "CM"),
        "Africa/El_Aaiun": ("Morocco Standard Time", "EH"),
        "Africa/Freetown": ("Greenwich Standard Time", "SL"),
        "Africa/Gaborone": ("South Africa Standard Time", "BW"),
        "Africa/Harare": ("South Africa Standard Time", "ZW"),
        "Africa/Johannesburg": ("South Africa Standard Time", "001"),
        "Africa/Juba": ("South Sudan Standard Time", "001"),
        "Africa/Kampala": ("E. Africa Standard Time", "UG"),
        "Africa/Khartoum": ("Sudan Standard Time", "001"),
        "Africa/Kigali": ("South Africa Standard Time", "RW"),
        "Africa/Kinshasa": ("W. Central Africa Standard Time", "CD"),
        "Africa/Lagos": ("W. Central Africa Standard Time", "001"),
        "Africa/Libreville": ("W. Central Africa Standard Time", "GA"),
        "Africa/Lome": ("Greenwich Standard Time", "TG"),
        "Africa/Luanda": ("W. Central Africa Standard Time", "AO"),
        "Africa/Lubumbashi": ("South Africa Standard Time", "CD"),
        "Africa/Lusaka": ("South Africa Standard Time", "ZM"),
        "Africa/Malabo": ("W. Central Africa Standard Time", "GQ"),
        "Africa/Maputo": ("South Africa Standard Time", "MZ"),
        "Africa/Maseru": ("South Africa Standard Time", "LS"),
        "Africa/Mbabane": ("South Africa Standard Time", "SZ"),
        "Africa/Mogadishu": ("E. Africa Standard Time", "SO"),
        "Africa/Monrovia": ("Greenwich Standard Time", "LR"),
        "Africa/Nairobi": ("E. Africa Standard Time", "001"),
        "Africa/Ndjamena": ("W. Central Africa Standard Time", "TD"),
        "Africa/Niamey": ("W. Central Africa Standard Time", "NE"),
        "Africa/Nouakchott": ("Greenwich Standard Time", "MR"),
        "Africa/Ouagadougou": ("Greenwich Standard Time", "BF"),
        "Africa/Porto-Novo": ("W. Central Africa Standard Time", "BJ"),
        "Africa/Sao_Tome": ("Sao Tome Standard Time", "001"),
        "Africa/Tripoli": ("Libya Standard Time", "001"),
        "Africa/Tunis": ("W. Central Africa Standard Time", "TN"),
        "Africa/Windhoek": ("Namibia Standard Time", "001"),
        "America/Adak": ("Aleutian Standard Time", "001"),
        "America/Anchorage": ("Alaskan Standard Time", "001"),
        "America/Anguilla": ("SA Western Standard Time", "AI"),
        "America/Antigua": ("SA Western Standard Time", "AG"),
        "America/Araguaina": ("Tocantins Standard Time", "001"),
        "America/Argentina/La_Rioja": ("Argentina Standard Time", "AR"),
        "America/Argentina/Rio_Gallegos": ("Argentina Standard Time", "AR"),
        "America/Argentina/Salta": ("Argentina Standard Time", "AR"),
        "America/Argentina/San_Juan": ("Argentina Standard Time", "AR"),
        "America/Argentina/San_Luis": ("Argentina Standard Time", "AR"),
        "America/Argentina/Tucuman": ("Argentina Standard Time", "AR"),
        "America/Argentina/Ushuaia": ("Argentina Standard Time", "AR"),
        "America/Aruba": ("SA Western Standard Time", "AW"),
        "America/Asuncion": ("Paraguay Standard Time", "001"),
        "America/Bahia": ("Bahia Standard Time", "001"),
        "America/Bahia_Banderas": ("Central Standard Time (Mexico)", "MX"),
        "America/Barbados": ("SA Western Standard Time", "BB"),
        "America/Belem": ("SA Eastern Standard Time", "BR"),
        "America/Belize": ("Central America Standard Time", "BZ"),
        "America/Blanc-Sablon": ("SA Western Standard Time", "CA"),
        "America/Boa_Vista": ("SA Western Standard Time", "BR"),
        "America/Bogota": ("SA Pacific Standard Time", "001"),
        "America/Boise": ("Mountain Standard Time", "US"),
        "America/Buenos_Aires": ("Argentina Standard Time", "001"),
        "America/Cambridge_Bay": ("Mountain Standard Time", "CA"),
        "America/Campo_Grande": ("Central Brazilian Standard Time", "BR"),
        "America/Cancun": ("Eastern Standard Time (Mexico)", "001"),
        "America/Caracas": ("Venezuela Standard Time", "001"),
        "America/Catamarca": ("Argentina Standard Time", "AR"),
        "America/Cayenne": ("SA Eastern Standard Time", "001"),
        "America/Cayman": ("SA Pacific Standard Time", "KY"),
        "America/Chicago": ("Central Standard Time", "001"),
        "America/Chihuahua": ("Mountain Standard Time (Mexico)", "001"),
        "America/Coral_Harbour": ("SA Pacific Standard Time", "CA"),
        "America/Cordoba": ("Argentina Standard Time", "AR"),
        "America/Costa_Rica": ("Central America Standard Time", "CR"),
        "America/Creston": ("US Mountain Standard Time", "CA"),
        "America/Cuiaba": ("Central Brazilian Standard Time", "001"),
        "America/Curacao": ("SA Western Standard Time", "CW"),
        "America/Danmarkshavn": ("Greenwich Standard Time", "GL"),
        "America/Dawson": ("Yukon Standard Time", "CA"),
        "America/Dawson_Creek": ("US Mountain Standard Time", "CA"),
        "America/Denver": ("Mountain Standard Time", "001"),
        "America/Detroit": ("Eastern Standard Time", "US"),
        "America/Dominica": ("SA Western Standard Time", "DM"),
        "America/Edmonton": ("Mountain Standard Time", "CA"),
        "America/Eirunepe": ("SA Pacific Standard Time", "BR"),
        "America/El_Salvador": ("Central America Standard Time", "SV"),
        "America/Fort_Nelson": ("US Mountain Standard Time", "CA"),
        "America/Fortaleza": ("SA Eastern Standard Time", "BR"),
        "America/Glace_Bay": ("Atlantic Standard Time", "CA"),
        "America/Godthab": ("Greenland Standard Time", "001"),
        "America/Goose_Bay": ("Atlantic Standard Time", "CA"),
        "America/Grand_Turk": ("Turks And Caicos Standard Time", "001"),
        "America/Grenada": ("SA Western Standard Time", "GD"),
        "America/Guadeloupe": ("SA Western Standard Time", "GP"),
        "America/Guatemala": ("Central America Standard Time", "001"),
        "America/Guayaquil": ("SA Pacific Standard Time", "EC"),
        "America/Guyana": ("SA Western Standard Time", "GY"),
        "America/Halifax": ("Atlantic Standard Time", "001"),
        "America/Havana": ("Cuba Standard Time", "001"),
        "America/Hermosillo": ("US Mountain Standard Time", "MX"),
        "America/Indiana/Knox": ("Central Standard Time", "US"),
        "America/Indiana/Marengo": ("US Eastern Standard Time", "US"),
        "America/Indiana/Petersburg": ("Eastern Standard Time", "US"),
        "America/Indiana/Tell_City": ("Central Standard Time", "US"),
        "America/Indiana/Vevay": ("US Eastern Standard Time", "US"),
        "America/Indiana/Vincennes": ("Eastern Standard Time", "US"),
        "America/Indiana/Winamac": ("Eastern Standard Time", "US"),
        "America/Indianapolis": ("US Eastern Standard Time", "001"),
        "America/Inuvik": ("Mountain Standard Time", "CA"),
        "America/Iqaluit": ("Eastern Standard Time", "CA"),
        "America/Jamaica": ("SA Pacific Standard Time", "JM"),
        "America/Jujuy": ("Argentina Standard Time", "AR"),
        "America/Juneau": ("Alaskan Standard Time", "US"),
        "America/Kentucky/Monticello": ("Eastern Standard Time", "US"),
        "America/Kralendijk": ("SA Western Standard Time", "BQ"),
        "America/La_Paz": ("SA Western Standard Time", "001"),
        "America/Lima": ("SA Pacific Standard Time", "PE"),
        "America/Los_Angeles": ("Pacific Standard Time", "001"),
        "America/Louisville": ("Eastern Standard Time", "US"),
        "America/Lower_Princes": ("SA Western Standard Time", "SX"),
        "America/Maceio": ("SA Eastern Standard Time", "BR"),
        "America/Managua": ("Central America Standard Time", "NI"),
        "America/Manaus": ("SA Western Standard Time", "BR"),
        "America/Marigot": ("SA Western Standard Time", "MF"),
        "America/Martinique": ("SA Western Standard Time", "MQ"),
        "America/Matamoros": ("Central Standard Time", "MX"),
        "America/Mazatlan": ("Mountain Standard Time (Mexico)", "MX"),
        "America/Mendoza": ("Argentina Standard Time", "AR"),
        "America/Menominee": ("Central Standard Time", "US"),
        "America/Merida": ("Central Standard Time (Mexico)", "MX"),
        "America/Metlakatla": ("Alaskan Standard Time", "US"),
        "America/Mexico_City": ("Central Standard Time (Mexico)", "001"),
        "America/Miquelon": ("Saint Pierre Standard Time", "001"),
        "America/Moncton": ("Atlantic Standard Time", "CA"),
        "America/Monterrey": ("Central Standard Time (Mexico)", "MX"),
        "America/Montevideo": ("Montevideo Standard Time", "001"),
        "America/Montreal": ("Eastern Standard Time", "CA"),
        "America/Montserrat": ("SA Western Standard Time", "MS"),
        "America/Nassau": ("Eastern Standard Time", "BS"),
        "America/New_York": ("Eastern Standard Time", "001"),
        "America/Nipigon": ("Eastern Standard Time", "CA"),
        "America/Nome": ("Alaskan Standard Time", "US"),
        "America/Noronha": ("UTC-02", "BR"),
        "America/North_Dakota/Beulah": ("Central Standard Time", "US"),
        "America/North_Dakota/Center": ("Central Standard Time", "US"),
        "America/North_Dakota/New_Salem": ("Central Standard Time", "US"),
        "America/Ojinaga": ("Mountain Standard Time", "MX"),
        "America/Panama": ("SA Pacific Standard Time", "PA"),
        "America/Pangnirtung": ("Eastern Standard Time", "CA"),
        "America/Paramaribo": ("SA Eastern Standard Time", "SR"),
        "America/Phoenix": ("US Mountain Standard Time", "001"),
        "America/Port-au-Prince": ("Haiti Standard Time", "001"),
        "America/Port_of_Spain": ("SA Western Standard Time", "TT"),
        "America/Porto_Velho": ("SA Western Standard Time", "BR"),
        "America/Puerto_Rico": ("SA Western Standard Time", "PR"),
        "America/Punta_Arenas": ("Magallanes Standard Time", "001"),
        "America/Rainy_River": ("Central Standard Time", "CA"),
        "America/Rankin_Inlet": ("Central Standard Time", "CA"),
        "America/Recife": ("SA Eastern Standard Time", "BR"),
        "America/Regina": ("Canada Central Standard Time", "001"),
        "America/Resolute": ("Central Standard Time", "CA"),
        "America/Rio_Branco": ("SA Pacific Standard Time", "BR"),
        "America/Santa_Isabel": ("Pacific Standard Time (Mexico)", "MX"),
        "America/Santarem": ("SA Eastern Standard Time", "BR"),
        "America/Santiago": ("Pacific SA Standard Time", "001"),
        "America/Santo_Domingo": ("SA Western Standard Time", "DO"),
        "America/Sao_Paulo": ("E. South America Standard Time", "001"),
        "America/Scoresbysund": ("Azores Standard Time", "GL"),
        "America/Sitka": ("Alaskan Standard Time", "US"),
        "America/St_Barthelemy": ("SA Western Standard Time", "BL"),
        "America/St_Johns": ("Newfoundland Standard Time", "001"),
        "America/St_Kitts": ("SA Western Standard Time", "KN"),
        "America/St_Lucia": ("SA Western Standard Time", "LC"),
        "America/St_Thomas": ("SA Western Standard Time", "VI"),
        "America/St_Vincent": ("SA Western Standard Time", "VC"),
        "America/Swift_Current": ("Canada Central Standard Time", "CA"),
        "America/Tegucigalpa": ("Central America Standard Time", "HN"),
        "America/Thule": ("Atlantic Standard Time", "GL"),
        "America/Thunder_Bay": ("Eastern Standard Time", "CA"),
        "America/Tijuana": ("Pacific Standard Time (Mexico)", "001"),
        "America/Toronto": ("Eastern Standard Time", "CA"),
        "America/Tortola": ("SA Western Standard Time", "VG"),
        "America/Vancouver": ("Pacific Standard Time", "CA"),
        "America/Whitehorse": ("Yukon Standard Time", "001"),
        "America/Winnipeg": ("Central Standard Time", "CA"),
        "America/Yakutat": ("Alaskan Standard Time", "US"),
        "America/Yellowknife": ("Mountain Standard Time", "CA"),
        "Antarctica/Casey": ("Central Pacific Standard Time", "AQ"),
        "Antarctica/Davis": ("SE Asia Standard Time", "AQ"),
        "Antarctica/DumontDUrville": ("West Pacific Standard Time", "AQ"),
        "Antarctica/Macquarie": ("Tasmania Standard Time", "AU"),
        "Antarctica/Mawson": ("West Asia Standard Time", "AQ"),
        "Antarctica/McMurdo": ("New Zealand Standard Time", "AQ"),
        "Antarctica/Palmer": ("SA Eastern Standard Time", "AQ"),
        "Antarctica/Rothera": ("SA Eastern Standard Time", "AQ"),
        "Antarctica/Syowa": ("E. Africa Standard Time", "AQ"),
        "Antarctica/Vostok": ("Central Asia Standard Time", "AQ"),
        "Arctic/Longyearbyen": ("W. Europe Standard Time", "SJ"),
        "Asia/Aden": ("Arab Standard Time", "YE"),
        "Asia/Almaty": ("Central Asia Standard Time", "001"),
        "Asia/Amman": ("Jordan Standard Time", "001"),
        "Asia/Anadyr": ("Russia Time Zone 11", "RU"),
        "Asia/Aqtau": ("West Asia Standard Time", "KZ"),
        "Asia/Aqtobe": ("West Asia Standard Time", "KZ"),
        "Asia/Ashgabat": ("West Asia Standard Time", "TM"),
        "Asia/Atyrau": ("West Asia Standard Time", "KZ"),
        "Asia/Baghdad": ("Arabic Standard Time", "001"),
        "Asia/Bahrain": ("Arab Standard Time", "BH"),
        "Asia/Baku": ("Azerbaijan Standard Time", "001"),
        "Asia/Bangkok": ("SE Asia Standard Time", "001"),
        "Asia/Barnaul": ("Altai Standard Time", "001"),
        "Asia/Beirut": ("Middle East Standard Time", "001"),
        "Asia/Bishkek": ("Central Asia Standard Time", "KG"),
        "Asia/Brunei": ("Singapore Standard Time", "BN"),
        "Asia/Calcutta": ("India Standard Time", "001"),
        "Asia/Chita": ("Transbaikal Standard Time", "001"),
        "Asia/Choibalsan": ("Ulaanbaatar Standard Time", "MN"),
        "Asia/Colombo": ("Sri Lanka Standard Time", "001"),
        "Asia/Damascus": ("Syria Standard Time", "001"),
        "Asia/Dhaka": ("Bangladesh Standard Time", "001"),
        "Asia/Dili": ("Tokyo Standard Time", "TL"),
        "Asia/Dubai": ("Arabian Standard Time", "001"),
        "Asia/Dushanbe": ("West Asia Standard Time", "TJ"),
        "Asia/Famagusta": ("GTB Standard Time", "CY"),
        "Asia/Gaza": ("West Bank Standard Time", "PS"),
        "Asia/Hebron": ("West Bank Standard Time", "001"),
        "Asia/Hong_Kong": ("China Standard Time", "HK"),
        "Asia/Hovd": ("W. Mongolia Standard Time", "001"),
        "Asia/Irkutsk": ("North Asia East Standard Time", "001"),
        "Asia/Jakarta": ("SE Asia Standard Time", "ID"),
        "Asia/Jayapura": ("Tokyo Standard Time", "ID"),
        "Asia/Jerusalem": ("Israel Standard Time", "001"),
        "Asia/Kabul": ("Afghanistan Standard Time", "001"),
        "Asia/Kamchatka": ("Russia Time Zone 11", "001"),
        "Asia/Karachi": ("Pakistan Standard Time", "001"),
        "Asia/Katmandu": ("Nepal Standard Time", "001"),
        "Asia/Khandyga": ("Yakutsk Standard Time", "RU"),
        "Asia/Krasnoyarsk": ("North Asia Standard Time", "001"),
        "Asia/Kuala_Lumpur": ("Singapore Standard Time", "MY"),
        "Asia/Kuching": ("Singapore Standard Time", "MY"),
        "Asia/Kuwait": ("Arab Standard Time", "KW"),
        "Asia/Macau": ("China Standard Time", "MO"),
        "Asia/Magadan": ("Magadan Standard Time", "001"),
        "Asia/Makassar": ("Singapore Standard Time", "ID"),
        "Asia/Manila": ("Singapore Standard Time", "PH"),
        "Asia/Muscat": ("Arabian Standard Time", "OM"),
        "Asia/Nicosia": ("GTB Standard Time", "CY"),
        "Asia/Novokuznetsk": ("North Asia Standard Time", "RU"),
        "Asia/Novosibirsk": ("N. Central Asia Standard Time", "001"),
        "Asia/Omsk": ("Omsk Standard Time", "001"),
        "Asia/Oral": ("West Asia Standard Time", "KZ"),
        "Asia/Phnom_Penh": ("SE Asia Standard Time", "KH"),
        "Asia/Pontianak": ("SE Asia Standard Time", "ID"),
        "Asia/Pyongyang": ("North Korea Standard Time", "001"),
        "Asia/Qatar": ("Arab Standard Time", "QA"),
        "Asia/Qostanay": ("Central Asia Standard Time", "KZ"),
        "Asia/Qyzylorda": ("Qyzylorda Standard Time", "001"),
        "Asia/Rangoon": ("Myanmar Standard Time", "001"),
        "Asia/Riyadh": ("Arab Standard Time", "001"),
        "Asia/Saigon": ("SE Asia Standard Time", "VN"),
        "Asia/Sakhalin": ("Sakhalin Standard Time", "001"),
        "Asia/Samarkand": ("West Asia Standard Time", "UZ"),
        "Asia/Seoul": ("Korea Standard Time", "001"),
        "Asia/Shanghai": ("China Standard Time", "001"),
        "Asia/Singapore": ("Singapore Standard Time", "001"),
        "Asia/Srednekolymsk": ("Russia Time Zone 10", "001"),
        "Asia/Taipei": ("Taipei Standard Time", "001"),
        "Asia/Tashkent": ("West Asia Standard Time", "001"),
        "Asia/Tbilisi": ("Georgian Standard Time", "001"),
        "Asia/Tehran": ("Iran Standard Time", "001"),
        "Asia/Thimphu": ("Bangladesh Standard Time", "BT"),
        "Asia/Tokyo": ("Tokyo Standard Time", "001"),
        "Asia/Tomsk": ("Tomsk Standard Time", "001"),
        "Asia/Ulaanbaatar": ("Ulaanbaatar Standard Time", "001"),
        "Asia/Urumqi": ("Central Asia Standard Time", "CN"),
        "Asia/Ust-Nera": ("Vladivostok Standard Time", "RU"),
        "Asia/Vientiane": ("SE Asia Standard Time", "LA"),
        "Asia/Vladivostok": ("Vladivostok Standard Time", "001"),
        "Asia/Yakutsk": ("Yakutsk Standard Time", "001"),
        "Asia/Yekaterinburg": ("Ekaterinburg Standard Time", "001"),
        "Asia/Yerevan": ("Caucasus Standard Time", "001"),
        "Atlantic/Azores": ("Azores Standard Time", "001"),
        "Atlantic/Bermuda": ("Atlantic Standard Time", "BM"),
        "Atlantic/Canary": ("GMT Standard Time", "ES"),
        "Atlantic/Cape_Verde": ("Cape Verde Standard Time", "001"),
        "Atlantic/Faeroe": ("GMT Standard Time", "FO"),
        "Atlantic/Madeira": ("GMT Standard Time", "PT"),
        "Atlantic/Reykjavik": ("Greenwich Standard Time", "001"),
        "Atlantic/South_Georgia": ("UTC-02", "GS"),
        "Atlantic/St_Helena": ("Greenwich Standard Time", "SH"),
        "Atlantic/Stanley": ("SA Eastern Standard Time", "FK"),
        "Australia/Adelaide": ("Cen. Australia Standard Time", "001"),
        "Australia/Brisbane": ("E. Australia Standard Time", "001"),
        "Australia/Broken_Hill": ("Cen. Australia Standard Time", "AU"),
        "Australia/Currie": ("Tasmania Standard Time", "AU"),
        "Australia/Darwin": ("AUS Central Standard Time", "001"),
        "Australia/Eucla": ("Aus Central W. Standard Time", "001"),
        "Australia/Hobart": ("Tasmania Standard Time", "001"),
        "Australia/Lindeman": ("E. Australia Standard Time", "AU"),
        "Australia/Lord_Howe": ("Lord Howe Standard Time", "001"),
        "Australia/Melbourne": ("AUS Eastern Standard Time", "AU"),
        "Australia/Perth": ("W. Australia Standard Time", "001"),
        "Australia/Sydney": ("AUS Eastern Standard Time", "001"),
        "CST6CDT": ("Central Standard Time", "ZZ"),
        "EST5EDT": ("Eastern Standard Time", "ZZ"),
        "Etc/GMT": ("UTC", "ZZ"),
        "Etc/GMT+1": ("Cape Verde Standard Time", "ZZ"),
        "Etc/GMT+10": ("Hawaiian Standard Time", "ZZ"),
        "Etc/GMT+11": ("UTC-11", "001"),
        "Etc/GMT+12": ("Dateline Standard Time", "001"),
        "Etc/GMT+2": ("UTC-02", "001"),
        "Etc/GMT+3": ("SA Eastern Standard Time", "ZZ"),
        "Etc/GMT+4": ("SA Western Standard Time", "ZZ"),
        "Etc/GMT+5": ("SA Pacific Standard Time", "ZZ"),
        "Etc/GMT+6": ("Central America Standard Time", "ZZ"),
        "Etc/GMT+7": ("US Mountain Standard Time", "ZZ"),
        "Etc/GMT+8": ("UTC-08", "001"),
        "Etc/GMT+9": ("UTC-09", "001"),
        "Etc/GMT-1": ("W. Central Africa Standard Time", "ZZ"),
        "Etc/GMT-10": ("West Pacific Standard Time", "ZZ"),
        "Etc/GMT-11": ("Central Pacific Standard Time", "ZZ"),
        "Etc/GMT-12": ("UTC+12", "001"),
        "Etc/GMT-13": ("UTC+13", "001"),
        "Etc/GMT-14": ("Line Islands Standard Time", "ZZ"),
        "Etc/GMT-2": ("South Africa Standard Time", "ZZ"),
        "Etc/GMT-3": ("E. Africa Standard Time", "ZZ"),
        "Etc/GMT-4": ("Arabian Standard Time", "ZZ"),
        "Etc/GMT-5": ("West Asia Standard Time", "ZZ"),
        "Etc/GMT-6": ("Central Asia Standard Time", "ZZ"),
        "Etc/GMT-7": ("SE Asia Standard Time", "ZZ"),
        "Etc/GMT-8": ("Singapore Standard Time", "ZZ"),
        "Etc/GMT-9": ("Tokyo Standard Time", "ZZ"),
        "Etc/UTC": ("UTC", "001"),
        "Europe/Amsterdam": ("W. Europe Standard Time", "NL"),
        "Europe/Andorra": ("W. Europe Standard Time", "AD"),
        "Europe/Astrakhan": ("Astrakhan Standard Time", "001"),
        "Europe/Athens": ("GTB Standard Time", "GR"),
        "Europe/Belgrade": ("Central Europe Standard Time", "RS"),
        "Europe/Berlin": ("W. Europe Standard Time", "001"),
        "Europe/Bratislava": ("Central Europe Standard Time", "SK"),
        "Europe/Brussels": ("Romance Standard Time", "BE"),
        "Europe/Bucharest": ("GTB Standard Time", "001"),
        "Europe/Budapest": ("Central Europe Standard Time", "001"),
        "Europe/Busingen": ("W. Europe Standard Time", "DE"),
        "Europe/Chisinau": ("E. Europe Standard Time", "001"),
        "Europe/Copenhagen": ("Romance Standard Time", "DK"),
        "Europe/Dublin": ("GMT Standard Time", "IE"),
        "Europe/Gibraltar": ("W. Europe Standard Time", "GI"),
        "Europe/Guernsey": ("GMT Standard Time", "GG"),
        "Europe/Helsinki": ("FLE Standard Time", "FI"),
        "Europe/Isle_of_Man": ("GMT Standard Time", "IM"),
        "Europe/Istanbul": ("Turkey Standard Time", "001"),
        "Europe/Jersey": ("GMT Standard Time", "JE"),
        "Europe/Kaliningrad": ("Kaliningrad Standard Time", "001"),
        "Europe/Kiev": ("FLE Standard Time", "001"),
        "Europe/Kirov": ("Russian Standard Time", "RU"),
        "Europe/Lisbon": ("GMT Standard Time", "PT"),
        "Europe/Ljubljana": ("Central Europe Standard Time", "SI"),
        "Europe/London": ("GMT Standard Time", "001"),
        "Europe/Luxembourg": ("W. Europe Standard Time", "LU"),
        "Europe/Madrid": ("Romance Standard Time", "ES"),
        "Europe/Malta": ("W. Europe Standard Time", "MT"),
        "Europe/Mariehamn": ("FLE Standard Time", "AX"),
        "Europe/Minsk": ("Belarus Standard Time", "001"),
        "Europe/Monaco": ("W. Europe Standard Time", "MC"),
        "Europe/Moscow": ("Russian Standard Time", "001"),
        "Europe/Oslo": ("W. Europe Standard Time", "NO"),
        "Europe/Paris": ("Romance Standard Time", "001"),
        "Europe/Podgorica": ("Central Europe Standard Time", "ME"),
        "Europe/Prague": ("Central Europe Standard Time", "CZ"),
        "Europe/Riga": ("FLE Standard Time", "LV"),
        "Europe/Rome": ("W. Europe Standard Time", "IT"),
        "Europe/Samara": ("Russia Time Zone 3", "001"),
        "Europe/San_Marino": ("W. Europe Standard Time", "SM"),
        "Europe/Sarajevo": ("Central European Standard Time", "BA"),
        "Europe/Saratov": ("Saratov Standard Time", "001"),
        "Europe/Simferopol": ("Russian Standard Time", "UA"),
        "Europe/Skopje": ("Central European Standard Time", "MK"),
        "Europe/Sofia": ("FLE Standard Time", "BG"),
        "Europe/Stockholm": ("W. Europe Standard Time", "SE"),
        "Europe/Tallinn": ("FLE Standard Time", "EE"),
        "Europe/Tirane": ("Central Europe Standard Time", "AL"),
        "Europe/Ulyanovsk": ("Astrakhan Standard Time", "RU"),
        "Europe/Uzhgorod": ("FLE Standard Time", "UA"),
        "Europe/Vaduz": ("W. Europe Standard Time", "LI"),
        "Europe/Vatican": ("W. Europe Standard Time", "VA"),
        "Europe/Vienna": ("W. Europe Standard Time", "AT"),
        "Europe/Vilnius": ("FLE Standard Time", "LT"),
        "Europe/Volgograd": ("Volgograd Standard Time", "001"),
        "Europe/Warsaw": ("Central European Standard Time", "001"),
        "Europe/Zagreb": ("Central European Standard Time", "HR"),
        "Europe/Zaporozhye": ("FLE Standard Time", "UA"),
        "Europe/Zurich": ("W. Europe Standard Time", "CH"),
        "Indian/Antananarivo": ("E. Africa Standard Time", "MG"),
        "Indian/Chagos": ("Central Asia Standard Time", "IO"),
        "Indian/Christmas": ("SE Asia Standard Time", "CX"),
        "Indian/Cocos": ("Myanmar Standard Time", "CC"),
        "Indian/Comoro": ("E. Africa Standard Time", "KM"),
        "Indian/Kerguelen": ("West Asia Standard Time", "TF"),
        "Indian/Mahe": ("Mauritius Standard Time", "SC"),
        "Indian/Maldives": ("West Asia Standard Time", "MV"),
        "Indian/Mauritius": ("Mauritius Standard Time", "001"),
        "Indian/Mayotte": ("E. Africa Standard Time", "YT"),
        "Indian/Reunion": ("Mauritius Standard Time", "RE"),
        "MST7MDT": ("Mountain Standard Time", "ZZ"),
        "PST8PDT": ("Pacific Standard Time", "ZZ"),
        "Pacific/Apia": ("Samoa Standard Time", "001"),
        "Pacific/Auckland": ("New Zealand Standard Time", "001"),
        "Pacific/Bougainville": ("Bougainville Standard Time", "001"),
        "Pacific/Chatham": ("Chatham Islands Standard Time", "001"),
        "Pacific/Easter": ("Easter Island Standard Time", "001"),
        "Pacific/Efate": ("Central Pacific Standard Time", "VU"),
        "Pacific/Enderbury": ("UTC+13", "KI"),
        "Pacific/Fakaofo": ("UTC+13", "TK"),
        "Pacific/Fiji": ("Fiji Standard Time", "001"),
        "Pacific/Funafuti": ("UTC+12", "TV"),
        "Pacific/Galapagos": ("Central America Standard Time", "EC"),
        "Pacific/Gambier": ("UTC-09", "PF"),
        "Pacific/Guadalcanal": ("Central Pacific Standard Time", "001"),
        "Pacific/Guam": ("West Pacific Standard Time", "GU"),
        "Pacific/Honolulu": ("Hawaiian Standard Time", "001"),
        "Pacific/Johnston": ("Hawaiian Standard Time", "UM"),
        "Pacific/Kiritimati": ("Line Islands Standard Time", "001"),
        "Pacific/Kosrae": ("Central Pacific Standard Time", "FM"),
        "Pacific/Kwajalein": ("UTC+12", "MH"),
        "Pacific/Majuro": ("UTC+12", "MH"),
        "Pacific/Marquesas": ("Marquesas Standard Time", "001"),
        "Pacific/Midway": ("UTC-11", "UM"),
        "Pacific/Nauru": ("UTC+12", "NR"),
        "Pacific/Niue": ("UTC-11", "NU"),
        "Pacific/Norfolk": ("Norfolk Standard Time", "001"),
        "Pacific/Noumea": ("Central Pacific Standard Time", "NC"),
        "Pacific/Pago_Pago": ("UTC-11", "AS"),
        "Pacific/Palau": ("Tokyo Standard Time", "PW"),
        "Pacific/Pitcairn": ("UTC-08", "PN"),
        "Pacific/Ponape": ("Central Pacific Standard Time", "FM"),
        "Pacific/Port_Moresby": ("West Pacific Standard Time", "001"),
        "Pacific/Rarotonga": ("Hawaiian Standard Time", "CK"),
        "Pacific/Saipan": ("West Pacific Standard Time", "MP"),
        "Pacific/Tahiti": ("Hawaiian Standard Time", "PF"),
        "Pacific/Tarawa": ("UTC+12", "KI"),
        "Pacific/Tongatapu": ("Tonga Standard Time", "001"),
        "Pacific/Truk": ("West Pacific Standard Time", "FM"),
        "Pacific/Wake": ("UTC+12", "UM"),
        "Pacific/Wallis": ("UTC+12", "WF"),
    }

    # Timezone names used by IANA but not mentioned in the CLDR. All of them have an alias in CLDR. This is essentially
    # all timezone names that zoneinfo.available_timezones() contains but CLDR doesn't. Aliases were found
    # at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    IANA_TO_MS_TIMEZONE_MAP = dict(
        CLDR_TO_MS_TIMEZONE_MAP,
        **{
            "Africa/Asmara": CLDR_TO_MS_TIMEZONE_MAP["Africa/Nairobi"],
            "Africa/Timbuktu": CLDR_TO_MS_TIMEZONE_MAP["Africa/Abidjan"],
            "America/Argentina/Buenos_Aires": CLDR_TO_MS_TIMEZONE_MAP["America/Buenos_Aires"],
            "America/Argentina/Catamarca": CLDR_TO_MS_TIMEZONE_MAP["America/Catamarca"],
            "America/Argentina/ComodRivadavia": CLDR_TO_MS_TIMEZONE_MAP["America/Catamarca"],
            "America/Argentina/Cordoba": CLDR_TO_MS_TIMEZONE_MAP["America/Cordoba"],
            "America/Argentina/Jujuy": CLDR_TO_MS_TIMEZONE_MAP["America/Jujuy"],
            "America/Argentina/Mendoza": CLDR_TO_MS_TIMEZONE_MAP["America/Mendoza"],
            "America/Atikokan": CLDR_TO_MS_TIMEZONE_MAP["America/Coral_Harbour"],
            "America/Atka": CLDR_TO_MS_TIMEZONE_MAP["America/Adak"],
            "America/Ensenada": CLDR_TO_MS_TIMEZONE_MAP["America/Tijuana"],
            "America/Fort_Wayne": CLDR_TO_MS_TIMEZONE_MAP["America/Indianapolis"],
            "America/Indiana/Indianapolis": CLDR_TO_MS_TIMEZONE_MAP["America/Indianapolis"],
            "America/Kentucky/Louisville": CLDR_TO_MS_TIMEZONE_MAP["America/Louisville"],
            "America/Knox_IN": CLDR_TO_MS_TIMEZONE_MAP["America/Indiana/Knox"],
            "America/Nuuk": CLDR_TO_MS_TIMEZONE_MAP["America/Godthab"],
            "America/Porto_Acre": CLDR_TO_MS_TIMEZONE_MAP["America/Rio_Branco"],
            "America/Rosario": CLDR_TO_MS_TIMEZONE_MAP["America/Cordoba"],
            "America/Shiprock": CLDR_TO_MS_TIMEZONE_MAP["America/Denver"],
            "America/Virgin": CLDR_TO_MS_TIMEZONE_MAP["America/Port_of_Spain"],
            "Antarctica/South_Pole": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Auckland"],
            "Antarctica/Troll": CLDR_TO_MS_TIMEZONE_MAP["Europe/Oslo"],
            "Asia/Ashkhabad": CLDR_TO_MS_TIMEZONE_MAP["Asia/Ashgabat"],
            "Asia/Chongqing": CLDR_TO_MS_TIMEZONE_MAP["Asia/Shanghai"],
            "Asia/Chungking": CLDR_TO_MS_TIMEZONE_MAP["Asia/Shanghai"],
            "Asia/Dacca": CLDR_TO_MS_TIMEZONE_MAP["Asia/Dhaka"],
            "Asia/Harbin": CLDR_TO_MS_TIMEZONE_MAP["Asia/Shanghai"],
            "Asia/Ho_Chi_Minh": CLDR_TO_MS_TIMEZONE_MAP["Asia/Saigon"],
            "Asia/Istanbul": CLDR_TO_MS_TIMEZONE_MAP["Europe/Istanbul"],
            "Asia/Kashgar": CLDR_TO_MS_TIMEZONE_MAP["Asia/Urumqi"],
            "Asia/Kathmandu": CLDR_TO_MS_TIMEZONE_MAP["Asia/Katmandu"],
            "Asia/Kolkata": CLDR_TO_MS_TIMEZONE_MAP["Asia/Calcutta"],
            "Asia/Macao": CLDR_TO_MS_TIMEZONE_MAP["Asia/Macau"],
            "Asia/Tel_Aviv": CLDR_TO_MS_TIMEZONE_MAP["Asia/Jerusalem"],
            "Asia/Thimbu": CLDR_TO_MS_TIMEZONE_MAP["Asia/Thimphu"],
            "Asia/Ujung_Pandang": CLDR_TO_MS_TIMEZONE_MAP["Asia/Makassar"],
            "Asia/Ulan_Bator": CLDR_TO_MS_TIMEZONE_MAP["Asia/Ulaanbaatar"],
            "Asia/Yangon": CLDR_TO_MS_TIMEZONE_MAP["Asia/Rangoon"],
            "Atlantic/Faroe": CLDR_TO_MS_TIMEZONE_MAP["Atlantic/Faeroe"],
            "Atlantic/Jan_Mayen": CLDR_TO_MS_TIMEZONE_MAP["Europe/Oslo"],
            "Australia/ACT": CLDR_TO_MS_TIMEZONE_MAP["Australia/Sydney"],
            "Australia/Canberra": CLDR_TO_MS_TIMEZONE_MAP["Australia/Sydney"],
            "Australia/LHI": CLDR_TO_MS_TIMEZONE_MAP["Australia/Lord_Howe"],
            "Australia/NSW": CLDR_TO_MS_TIMEZONE_MAP["Australia/Sydney"],
            "Australia/North": CLDR_TO_MS_TIMEZONE_MAP["Australia/Darwin"],
            "Australia/Queensland": CLDR_TO_MS_TIMEZONE_MAP["Australia/Brisbane"],
            "Australia/South": CLDR_TO_MS_TIMEZONE_MAP["Australia/Adelaide"],
            "Australia/Tasmania": CLDR_TO_MS_TIMEZONE_MAP["Australia/Hobart"],
            "Australia/Victoria": CLDR_TO_MS_TIMEZONE_MAP["Australia/Melbourne"],
            "Australia/West": CLDR_TO_MS_TIMEZONE_MAP["Australia/Perth"],
            "Australia/Yancowinna": CLDR_TO_MS_TIMEZONE_MAP["Australia/Broken_Hill"],
            "Brazil/Acre": CLDR_TO_MS_TIMEZONE_MAP["America/Rio_Branco"],
            "Brazil/DeNoronha": CLDR_TO_MS_TIMEZONE_MAP["America/Noronha"],
            "Brazil/East": CLDR_TO_MS_TIMEZONE_MAP["America/Sao_Paulo"],
            "Brazil/West": CLDR_TO_MS_TIMEZONE_MAP["America/Manaus"],
            "CET": CLDR_TO_MS_TIMEZONE_MAP["Europe/Paris"],
            "Canada/Atlantic": CLDR_TO_MS_TIMEZONE_MAP["America/Halifax"],
            "Canada/Central": CLDR_TO_MS_TIMEZONE_MAP["America/Winnipeg"],
            "Canada/Eastern": CLDR_TO_MS_TIMEZONE_MAP["America/Toronto"],
            "Canada/Mountain": CLDR_TO_MS_TIMEZONE_MAP["America/Edmonton"],
            "Canada/Newfoundland": CLDR_TO_MS_TIMEZONE_MAP["America/St_Johns"],
            "Canada/Pacific": CLDR_TO_MS_TIMEZONE_MAP["America/Vancouver"],
            "Canada/Saskatchewan": CLDR_TO_MS_TIMEZONE_MAP["America/Regina"],
            "Canada/Yukon": CLDR_TO_MS_TIMEZONE_MAP["America/Whitehorse"],
            "Chile/Continental": CLDR_TO_MS_TIMEZONE_MAP["America/Santiago"],
            "Chile/EasterIsland": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Easter"],
            "Cuba": CLDR_TO_MS_TIMEZONE_MAP["America/Havana"],
            "EET": CLDR_TO_MS_TIMEZONE_MAP["Europe/Sofia"],
            "EST": CLDR_TO_MS_TIMEZONE_MAP["America/Cancun"],
            "Egypt": CLDR_TO_MS_TIMEZONE_MAP["Africa/Cairo"],
            "Eire": CLDR_TO_MS_TIMEZONE_MAP["Europe/Dublin"],
            "Etc/GMT+0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "Etc/GMT-0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "Etc/GMT0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "Etc/Greenwich": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "Etc/UCT": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "Etc/Universal": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "Etc/Zulu": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "Europe/Belfast": CLDR_TO_MS_TIMEZONE_MAP["Europe/London"],
            "Europe/Kyiv": CLDR_TO_MS_TIMEZONE_MAP["Europe/Kiev"],
            "Europe/Nicosia": CLDR_TO_MS_TIMEZONE_MAP["Asia/Nicosia"],
            "Europe/Tiraspol": CLDR_TO_MS_TIMEZONE_MAP["Europe/Chisinau"],
            "Factory": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "GB": CLDR_TO_MS_TIMEZONE_MAP["Europe/London"],
            "GB-Eire": CLDR_TO_MS_TIMEZONE_MAP["Europe/London"],
            "GMT": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "GMT+0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "GMT-0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "GMT0": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "Greenwich": CLDR_TO_MS_TIMEZONE_MAP["Etc/GMT"],
            "HST": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Honolulu"],
            "Hongkong": CLDR_TO_MS_TIMEZONE_MAP["Asia/Hong_Kong"],
            "Iceland": CLDR_TO_MS_TIMEZONE_MAP["Atlantic/Reykjavik"],
            "Iran": CLDR_TO_MS_TIMEZONE_MAP["Asia/Tehran"],
            "Israel": CLDR_TO_MS_TIMEZONE_MAP["Asia/Jerusalem"],
            "Jamaica": CLDR_TO_MS_TIMEZONE_MAP["America/Jamaica"],
            "Japan": CLDR_TO_MS_TIMEZONE_MAP["Asia/Tokyo"],
            "Kwajalein": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Kwajalein"],
            "Libya": CLDR_TO_MS_TIMEZONE_MAP["Africa/Tripoli"],
            "MET": CLDR_TO_MS_TIMEZONE_MAP["Europe/Paris"],
            "MST": CLDR_TO_MS_TIMEZONE_MAP["America/Phoenix"],
            "Mexico/BajaNorte": CLDR_TO_MS_TIMEZONE_MAP["America/Tijuana"],
            "Mexico/BajaSur": CLDR_TO_MS_TIMEZONE_MAP["America/Mazatlan"],
            "Mexico/General": CLDR_TO_MS_TIMEZONE_MAP["America/Mexico_City"],
            "NZ": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Auckland"],
            "NZ-CHAT": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Chatham"],
            "Navajo": CLDR_TO_MS_TIMEZONE_MAP["America/Denver"],
            "PRC": CLDR_TO_MS_TIMEZONE_MAP["Asia/Shanghai"],
            "Pacific/Chuuk": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Truk"],
            "Pacific/Kanton": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Enderbury"],
            "Pacific/Pohnpei": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Ponape"],
            "Pacific/Samoa": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Pago_Pago"],
            "Pacific/Yap": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Truk"],
            "Poland": CLDR_TO_MS_TIMEZONE_MAP["Europe/Warsaw"],
            "Portugal": CLDR_TO_MS_TIMEZONE_MAP["Europe/Lisbon"],
            "ROC": CLDR_TO_MS_TIMEZONE_MAP["Asia/Taipei"],
            "ROK": CLDR_TO_MS_TIMEZONE_MAP["Asia/Seoul"],
            "Singapore": CLDR_TO_MS_TIMEZONE_MAP["Asia/Singapore"],
            "Turkey": CLDR_TO_MS_TIMEZONE_MAP["Europe/Istanbul"],
            "UCT": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "US/Alaska": CLDR_TO_MS_TIMEZONE_MAP["America/Anchorage"],
            "US/Aleutian": CLDR_TO_MS_TIMEZONE_MAP["America/Adak"],
            "US/Arizona": CLDR_TO_MS_TIMEZONE_MAP["America/Phoenix"],
            "US/Central": CLDR_TO_MS_TIMEZONE_MAP["America/Chicago"],
            "US/East-Indiana": CLDR_TO_MS_TIMEZONE_MAP["America/Indianapolis"],
            "US/Eastern": CLDR_TO_MS_TIMEZONE_MAP["America/New_York"],
            "US/Hawaii": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Honolulu"],
            "US/Indiana-Starke": CLDR_TO_MS_TIMEZONE_MAP["America/Indiana/Knox"],
            "US/Michigan": CLDR_TO_MS_TIMEZONE_MAP["America/Detroit"],
            "US/Mountain": CLDR_TO_MS_TIMEZONE_MAP["America/Denver"],
            "US/Pacific": CLDR_TO_MS_TIMEZONE_MAP["America/Los_Angeles"],
            "US/Samoa": CLDR_TO_MS_TIMEZONE_MAP["Pacific/Pago_Pago"],
            "UTC": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "Universal": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
            "W-SU": CLDR_TO_MS_TIMEZONE_MAP["Europe/Moscow"],
            "WET": CLDR_TO_MS_TIMEZONE_MAP["Europe/Lisbon"],
            "Zulu": CLDR_TO_MS_TIMEZONE_MAP["Etc/UTC"],
        },
    )

    # Reverse map from Microsoft timezone ID to IANA timezone name. Non-IANA timezone ID's can be added here.
    MS_TIMEZONE_TO_IANA_MAP = dict(
        # Use the CLDR map because the IANA map contains deprecated aliases that not all systems support
        {v[0]: k for k, v in CLDR_TO_MS_TIMEZONE_MAP.items() if v[1] == DEFAULT_TERRITORY},
        **{
            "tzone://Microsoft/Utc": "UTC",
        },
    )

## Functions

`def generate_map(timeout=10)`

  Create a new CLDR_TO_MS_TIMEZONE_MAP map from the CLDR data. Used when the CLDR database is updated.

  :param timeout: (Default value = 10) :return:

  Expand source code

      def generate_map(timeout=10):
          """Create a new CLDR_TO_MS_TIMEZONE_MAP map from the CLDR data. Used when the CLDR database is updated.

          :param timeout:  (Default value = 10)
          :return:
          """
          r = requests.get(CLDR_WINZONE_URL, timeout=timeout)
          if r.status_code != 200:
              raise ValueError(f"Unexpected response: {r}")
          tz_map = {}
          timezones_elem = to_xml(r.content).find("windowsZones").find("mapTimezones")
          type_version = timezones_elem.get("typeVersion")
          other_version = timezones_elem.get("otherVersion")
          for e in timezones_elem.findall("mapZone"):
              for location in re.split(r"\s+", e.get("type")):
                  if e.get("territory") == DEFAULT_TERRITORY or location not in tz_map:
                      # Prefer default territory. This is so MS_TIMEZONE_TO_IANA_MAP maps from MS timezone ID back to the
                      # "preferred" region/location timezone name.
                      tz_map[location] = e.get("other"), e.get("territory")
          return type_version, other_version, tz_map