# -*- coding: utf-8 -*- """ Time zone functions. Part of the pygeoip package. @author: Jennifer Ennis @license: Copyright(C) 2004 MaxMind LLC This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . """ __all__ = ['time_zone_by_country_and_region'] _country = { 'AD': 'Europe/Andorra', 'AE': 'Asia/Dubai', 'AF': 'Asia/Kabul', 'AG': 'America/Antigua', 'AI': 'America/Anguilla', 'AL': 'Europe/Tirane', 'AM': 'Asia/Yerevan', 'AN': 'America/Curacao', 'AO': 'Africa/Luanda', 'AR': { '01': 'America/Argentina/Buenos_Aires', '02': 'America/Argentina/Catamarca', '03': 'America/Argentina/Tucuman', '04': 'America/Argentina/Rio_Gallegos', '05': 'America/Argentina/Cordoba', '06': 'America/Argentina/Tucuman', '07': 'America/Argentina/Buenos_Aires', '08': 'America/Argentina/Buenos_Aires', '09': 'America/Argentina/Tucuman', '10': 'America/Argentina/Jujuy', '11': 'America/Argentina/San_Luis', '12': 'America/Argentina/La_Rioja', '13': 'America/Argentina/Mendoza', '14': 'America/Argentina/Buenos_Aires', '15': 'America/Argentina/San_Luis', '16': 'America/Argentina/Buenos_Aires', '17': 'America/Argentina/Salta', '18': 'America/Argentina/San_Juan', '19': 'America/Argentina/San_Luis', '20': 'America/Argentina/Rio_Gallegos', '21': 'America/Argentina/Buenos_Aires', '22': 'America/Argentina/Catamarca', '23': 'America/Argentina/Ushuaia', '24': 'America/Argentina/Tucuman' }, 'AS': 'US/Samoa', 'AT': 'Europe/Vienna', 'AU': { '01': 'Australia/Canberra', '02': 'Australia/NSW', '03': 'Australia/North', '04': 'Australia/Queensland', '05': 'Australia/South', '06': 'Australia/Tasmania', '07': 'Australia/Victoria', '08': 'Australia/West' }, 'AW': 'America/Aruba', 'AX': 'Europe/Mariehamn', 'AZ': 'Asia/Baku', 'BA': 'Europe/Sarajevo', 'BB': 'America/Barbados', 'BD': 'Asia/Dhaka', 'BE': 'Europe/Brussels', 'BF': 'Africa/Ouagadougou', 'BG': 'Europe/Sofia', 'BH': 'Asia/Bahrain', 'BI': 'Africa/Bujumbura', 'BJ': 'Africa/Porto-Novo', 'BL': 'America/St_Barthelemy', 'BM': 'Atlantic/Bermuda', 'BN': 'Asia/Brunei', 'BO': 'America/La_Paz', 'BQ': 'America/Curacao', 'BR': { '01': 'America/Rio_Branco', '02': 'America/Maceio', '03': 'America/Sao_Paulo', '04': 'America/Manaus', '05': 'America/Bahia', '06': 'America/Fortaleza', '07': 'America/Sao_Paulo', '08': 'America/Sao_Paulo', '11': 'America/Campo_Grande', '13': 'America/Belem', '14': 'America/Cuiaba', '15': 'America/Sao_Paulo', '16': 'America/Belem', '17': 'America/Recife', '18': 'America/Sao_Paulo', '20': 'America/Fortaleza', '21': 'America/Sao_Paulo', '22': 'America/Recife', '23': 'America/Sao_Paulo', '24': 'America/Porto_Velho', '25': 'America/Boa_Vista', '26': 'America/Sao_Paulo', '27': 'America/Sao_Paulo', '28': 'America/Maceio', '29': 'America/Sao_Paulo', '30': 'America/Recife', '31': 'America/Araguaina' }, 'BS': 'America/Nassau', 'BT': 'Asia/Thimphu', 'BW': 'Africa/Gaborone', 'BY': 'Europe/Minsk', 'BZ': 'America/Belize', 'CA': { 'AB': 'America/Edmonton', 'BC': 'America/Vancouver', 'MB': 'America/Winnipeg', 'NB': 'America/Halifax', 'NL': 'America/St_Johns', 'NS': 'America/Halifax', 'NT': 'America/Yellowknife', 'NU': 'America/Rankin_Inlet', 'ON': 'America/Toronto', 'PE': 'America/Halifax', 'QC': 'America/Montreal', 'SK': 'America/Regina', 'YT': 'America/Whitehorse' }, 'CC': 'Indian/Cocos', 'CD': { '02': 'Africa/Kinshasa', '05': 'Africa/Lubumbashi', '06': 'Africa/Kinshasa', '08': 'Africa/Kinshasa', '10': 'Africa/Lubumbashi', '11': 'Africa/Lubumbashi', '12': 'Africa/Lubumbashi' }, 'CF': 'Africa/Bangui', 'CG': 'Africa/Brazzaville', 'CH': 'Europe/Zurich', 'CI': 'Africa/Abidjan', 'CK': 'Pacific/Rarotonga', 'CL': 'Chile/Continental', 'CM': 'Africa/Lagos', 'CN': { '01': 'Asia/Shanghai', '02': 'Asia/Shanghai', '03': 'Asia/Shanghai', '04': 'Asia/Shanghai', '05': 'Asia/Harbin', '06': 'Asia/Chongqing', '07': 'Asia/Shanghai', '08': 'Asia/Harbin', '09': 'Asia/Shanghai', '10': 'Asia/Shanghai', '11': 'Asia/Chongqing', '12': 'Asia/Shanghai', '13': 'Asia/Urumqi', '14': 'Asia/Chongqing', '15': 'Asia/Chongqing', '16': 'Asia/Chongqing', '18': 'Asia/Chongqing', '19': 'Asia/Harbin', '20': 'Asia/Harbin', '21': 'Asia/Chongqing', '22': 'Asia/Harbin', '23': 'Asia/Shanghai', '24': 'Asia/Chongqing', '25': 'Asia/Shanghai', '26': 'Asia/Chongqing', '28': 'Asia/Shanghai', '29': 'Asia/Chongqing', '30': 'Asia/Chongqing', '31': 'Asia/Chongqing', '32': 'Asia/Chongqing', '33': 'Asia/Chongqing' }, 'CO': 'America/Bogota', 'CR': 'America/Costa_Rica', 'CU': 'America/Havana', 'CV': 'Atlantic/Cape_Verde', 'CW': 'America/Curacao', 'CX': 'Indian/Christmas', 'CY': 'Asia/Nicosia', 'CZ': 'Europe/Prague', 'DE': 'Europe/Berlin', 'DJ': 'Africa/Djibouti', 'DK': 'Europe/Copenhagen', 'DM': 'America/Dominica', 'DO': 'America/Santo_Domingo', 'DZ': 'Africa/Algiers', 'EC': { '01': 'Pacific/Galapagos', '02': 'America/Guayaquil', '03': 'America/Guayaquil', '04': 'America/Guayaquil', '05': 'America/Guayaquil', '06': 'America/Guayaquil', '07': 'America/Guayaquil', '08': 'America/Guayaquil', '09': 'America/Guayaquil', '10': 'America/Guayaquil', '11': 'America/Guayaquil', '12': 'America/Guayaquil', '13': 'America/Guayaquil', '14': 'America/Guayaquil', '15': 'America/Guayaquil', '17': 'America/Guayaquil', '18': 'America/Guayaquil', '19': 'America/Guayaquil', '20': 'America/Guayaquil', '22': 'America/Guayaquil' }, 'EE': 'Europe/Tallinn', 'EG': 'Africa/Cairo', 'EH': 'Africa/El_Aaiun', 'ER': 'Africa/Asmera', 'ES': { '07': 'Europe/Madrid', '27': 'Europe/Madrid', '29': 'Europe/Madrid', '31': 'Europe/Madrid', '32': 'Europe/Madrid', '34': 'Europe/Madrid', '39': 'Europe/Madrid', '51': 'Africa/Ceuta', '52': 'Europe/Madrid', '53': 'Atlantic/Canary', '54': 'Europe/Madrid', '55': 'Europe/Madrid', '56': 'Europe/Madrid', '57': 'Europe/Madrid', '58': 'Europe/Madrid', '59': 'Europe/Madrid', '60': 'Europe/Madrid' }, 'ET': 'Africa/Addis_Ababa', 'FI': 'Europe/Helsinki', 'FJ': 'Pacific/Fiji', 'FK': 'Atlantic/Stanley', 'FO': 'Atlantic/Faeroe', 'FR': 'Europe/Paris', 'FX': 'Europe/Paris', 'GA': 'Africa/Libreville', 'GB': 'Europe/London', 'GD': 'America/Grenada', 'GE': 'Asia/Tbilisi', 'GF': 'America/Cayenne', 'GG': 'Europe/Guernsey', 'GH': 'Africa/Accra', 'GI': 'Europe/Gibraltar', 'GL': { '01': 'America/Thule', '02': 'America/Godthab', '03': 'America/Godthab' }, 'GM': 'Africa/Banjul', 'GN': 'Africa/Conakry', 'GP': 'America/Guadeloupe', 'GQ': 'Africa/Malabo', 'GR': 'Europe/Athens', 'GS': 'Atlantic/South_Georgia', 'GT': 'America/Guatemala', 'GU': 'Pacific/Guam', 'GW': 'Africa/Bissau', 'GY': 'America/Guyana', 'HK': 'Asia/Hong_Kong', 'HN': 'America/Tegucigalpa', 'HR': 'Europe/Zagreb', 'HT': 'America/Port-au-Prince', 'HU': 'Europe/Budapest', 'ID': { '01': 'Asia/Pontianak', '02': 'Asia/Makassar', '03': 'Asia/Jakarta', '04': 'Asia/Jakarta', '05': 'Asia/Jakarta', '06': 'Asia/Jakarta', '07': 'Asia/Jakarta', '08': 'Asia/Jakarta', '09': 'Asia/Jayapura', '10': 'Asia/Jakarta', '11': 'Asia/Pontianak', '12': 'Asia/Makassar', '13': 'Asia/Makassar', '14': 'Asia/Makassar', '15': 'Asia/Jakarta', '16': 'Asia/Makassar', '17': 'Asia/Makassar', '18': 'Asia/Makassar', '19': 'Asia/Pontianak', '20': 'Asia/Makassar', '21': 'Asia/Makassar', '22': 'Asia/Makassar', '23': 'Asia/Makassar', '24': 'Asia/Jakarta', '25': 'Asia/Pontianak', '26': 'Asia/Pontianak', '30': 'Asia/Jakarta', '31': 'Asia/Makassar', '33': 'Asia/Jakarta' }, 'IE': 'Europe/Dublin', 'IL': 'Asia/Jerusalem', 'IM': 'Europe/Isle_of_Man', 'IN': 'Asia/Calcutta', 'IO': 'Indian/Chagos', 'IQ': 'Asia/Baghdad', 'IR': 'Asia/Tehran', 'IS': 'Atlantic/Reykjavik', 'IT': 'Europe/Rome', 'JE': 'Europe/Jersey', 'JM': 'America/Jamaica', 'JO': 'Asia/Amman', 'JP': 'Asia/Tokyo', 'KE': 'Africa/Nairobi', 'KG': 'Asia/Bishkek', 'KH': 'Asia/Phnom_Penh', 'KI': 'Pacific/Tarawa', 'KM': 'Indian/Comoro', 'KN': 'America/St_Kitts', 'KP': 'Asia/Pyongyang', 'KR': 'Asia/Seoul', 'KW': 'Asia/Kuwait', 'KY': 'America/Cayman', 'KZ': { '01': 'Asia/Almaty', '02': 'Asia/Almaty', '03': 'Asia/Qyzylorda', '04': 'Asia/Aqtobe', '05': 'Asia/Qyzylorda', '06': 'Asia/Aqtau', '07': 'Asia/Oral', '08': 'Asia/Qyzylorda', '09': 'Asia/Aqtau', '10': 'Asia/Qyzylorda', '11': 'Asia/Almaty', '12': 'Asia/Qyzylorda', '13': 'Asia/Aqtobe', '14': 'Asia/Qyzylorda', '15': 'Asia/Almaty', '16': 'Asia/Aqtobe', '17': 'Asia/Almaty' }, 'LA': 'Asia/Vientiane', 'LB': 'Asia/Beirut', 'LC': 'America/St_Lucia', 'LI': 'Europe/Vaduz', 'LK': 'Asia/Colombo', 'LR': 'Africa/Monrovia', 'LS': 'Africa/Maseru', 'LT': 'Europe/Vilnius', 'LU': 'Europe/Luxembourg', 'LV': 'Europe/Riga', 'LY': 'Africa/Tripoli', 'MA': 'Africa/Casablanca', 'MC': 'Europe/Monaco', 'MD': 'Europe/Chisinau', 'ME': 'Europe/Podgorica', 'MF': 'America/Marigot', 'MG': 'Indian/Antananarivo', 'MK': 'Europe/Skopje', 'ML': 'Africa/Bamako', 'MM': 'Asia/Rangoon', 'MN': 'Asia/Choibalsan', 'MO': 'Asia/Macao', 'MP': 'Pacific/Saipan', 'MQ': 'America/Martinique', 'MR': 'Africa/Nouakchott', 'MS': 'America/Montserrat', 'MT': 'Europe/Malta', 'MU': 'Indian/Mauritius', 'MV': 'Indian/Maldives', 'MW': 'Africa/Blantyre', 'MX': { '01': 'America/Mexico_City', '02': 'America/Tijuana', '03': 'America/Hermosillo', '04': 'America/Merida', '05': 'America/Mexico_City', '06': 'America/Chihuahua', '07': 'America/Monterrey', '08': 'America/Mexico_City', '09': 'America/Mexico_City', '10': 'America/Mazatlan', '11': 'America/Mexico_City', '12': 'America/Mexico_City', '13': 'America/Mexico_City', '14': 'America/Mazatlan', '15': 'America/Chihuahua', '16': 'America/Mexico_City', '17': 'America/Mexico_City', '18': 'America/Mazatlan', '19': 'America/Monterrey', '20': 'America/Mexico_City', '21': 'America/Mexico_City', '22': 'America/Mexico_City', '23': 'America/Cancun', '24': 'America/Mexico_City', '25': 'America/Mazatlan', '26': 'America/Hermosillo', '27': 'America/Merida', '28': 'America/Monterrey', '29': 'America/Mexico_City', '30': 'America/Mexico_City', '31': 'America/Merida', '32': 'America/Monterrey' }, 'MY': { '01': 'Asia/Kuala_Lumpur', '02': 'Asia/Kuala_Lumpur', '03': 'Asia/Kuala_Lumpur', '04': 'Asia/Kuala_Lumpur', '05': 'Asia/Kuala_Lumpur', '06': 'Asia/Kuala_Lumpur', '07': 'Asia/Kuala_Lumpur', '08': 'Asia/Kuala_Lumpur', '09': 'Asia/Kuala_Lumpur', '11': 'Asia/Kuching', '12': 'Asia/Kuala_Lumpur', '13': 'Asia/Kuala_Lumpur', '14': 'Asia/Kuala_Lumpur', '15': 'Asia/Kuching', '16': 'Asia/Kuching' }, 'MZ': 'Africa/Maputo', 'NA': 'Africa/Windhoek', 'NC': 'Pacific/Noumea', 'NE': 'Africa/Niamey', 'NF': 'Pacific/Norfolk', 'NG': 'Africa/Lagos', 'NI': 'America/Managua', 'NL': 'Europe/Amsterdam', 'NO': 'Europe/Oslo', 'NP': 'Asia/Katmandu', 'NR': 'Pacific/Nauru', 'NU': 'Pacific/Niue', 'NZ': { '85': 'Pacific/Auckland', 'E7': 'Pacific/Auckland', 'E8': 'Pacific/Auckland', 'E9': 'Pacific/Auckland', 'F1': 'Pacific/Auckland', 'F2': 'Pacific/Auckland', 'F3': 'Pacific/Auckland', 'F4': 'Pacific/Auckland', 'F5': 'Pacific/Auckland', 'F7': 'Pacific/Chatham', 'F8': 'Pacific/Auckland', 'F9': 'Pacific/Auckland', 'G1': 'Pacific/Auckland', 'G2': 'Pacific/Auckland', 'G3': 'Pacific/Auckland' }, 'OM': 'Asia/Muscat', 'PA': 'America/Panama', 'PE': 'America/Lima', 'PF': 'Pacific/Marquesas', 'PG': 'Pacific/Port_Moresby', 'PH': 'Asia/Manila', 'PK': 'Asia/Karachi', 'PL': 'Europe/Warsaw', 'PM': 'America/Miquelon', 'PN': 'Pacific/Pitcairn', 'PR': 'America/Puerto_Rico', 'PS': 'Asia/Gaza', 'PT': { '02': 'Europe/Lisbon', '03': 'Europe/Lisbon', '04': 'Europe/Lisbon', '05': 'Europe/Lisbon', '06': 'Europe/Lisbon', '07': 'Europe/Lisbon', '08': 'Europe/Lisbon', '09': 'Europe/Lisbon', '10': 'Atlantic/Madeira', '11': 'Europe/Lisbon', '13': 'Europe/Lisbon', '14': 'Europe/Lisbon', '16': 'Europe/Lisbon', '17': 'Europe/Lisbon', '18': 'Europe/Lisbon', '19': 'Europe/Lisbon', '20': 'Europe/Lisbon', '21': 'Europe/Lisbon', '22': 'Europe/Lisbon' }, 'PW': 'Pacific/Palau', 'PY': 'America/Asuncion', 'QA': 'Asia/Qatar', 'RE': 'Indian/Reunion', 'RO': 'Europe/Bucharest', 'RS': 'Europe/Belgrade', 'RU': { '01': 'Europe/Volgograd', '02': 'Asia/Irkutsk', '03': 'Asia/Novokuznetsk', '04': 'Asia/Novosibirsk', '05': 'Asia/Vladivostok', '06': 'Europe/Moscow', '07': 'Europe/Volgograd', '08': 'Europe/Samara', '09': 'Europe/Moscow', '10': 'Europe/Moscow', '11': 'Asia/Irkutsk', '13': 'Asia/Yekaterinburg', '14': 'Asia/Irkutsk', '15': 'Asia/Anadyr', '16': 'Europe/Samara', '17': 'Europe/Volgograd', '18': 'Asia/Krasnoyarsk', '20': 'Asia/Irkutsk', '21': 'Europe/Moscow', '22': 'Europe/Volgograd', '23': 'Europe/Kaliningrad', '24': 'Europe/Volgograd', '25': 'Europe/Moscow', '26': 'Asia/Kamchatka', '27': 'Europe/Volgograd', '28': 'Europe/Moscow', '29': 'Asia/Novokuznetsk', '30': 'Asia/Vladivostok', '31': 'Asia/Krasnoyarsk', '32': 'Asia/Omsk', '33': 'Asia/Yekaterinburg', '34': 'Asia/Yekaterinburg', '35': 'Asia/Yekaterinburg', '36': 'Asia/Anadyr', '37': 'Europe/Moscow', '38': 'Europe/Volgograd', '39': 'Asia/Krasnoyarsk', '40': 'Asia/Yekaterinburg', '41': 'Europe/Moscow', '42': 'Europe/Moscow', '43': 'Europe/Moscow', '44': 'Asia/Magadan', '45': 'Europe/Samara', '46': 'Europe/Samara', '47': 'Europe/Moscow', '48': 'Europe/Moscow', '49': 'Europe/Moscow', '50': 'Asia/Yekaterinburg', '51': 'Europe/Moscow', '52': 'Europe/Moscow', '53': 'Asia/Novosibirsk', '54': 'Asia/Omsk', '55': 'Europe/Samara', '56': 'Europe/Moscow', '57': 'Europe/Samara', '58': 'Asia/Yekaterinburg', '59': 'Asia/Vladivostok', '60': 'Europe/Kaliningrad', '61': 'Europe/Volgograd', '62': 'Europe/Moscow', '63': 'Asia/Yakutsk', '64': 'Asia/Sakhalin', '65': 'Europe/Samara', '66': 'Europe/Moscow', '67': 'Europe/Samara', '68': 'Europe/Volgograd', '69': 'Europe/Moscow', '70': 'Europe/Volgograd', '71': 'Asia/Yekaterinburg', '72': 'Europe/Moscow', '73': 'Europe/Samara', '74': 'Asia/Krasnoyarsk', '75': 'Asia/Novosibirsk', '76': 'Europe/Moscow', '77': 'Europe/Moscow', '78': 'Asia/Yekaterinburg', '79': 'Asia/Irkutsk', '80': 'Asia/Yekaterinburg', '81': 'Europe/Samara', '82': 'Asia/Irkutsk', '83': 'Europe/Moscow', '84': 'Europe/Volgograd', '85': 'Europe/Moscow', '86': 'Europe/Moscow', '87': 'Asia/Novosibirsk', '88': 'Europe/Moscow', '89': 'Asia/Vladivostok' }, 'RW': 'Africa/Kigali', 'SA': 'Asia/Riyadh', 'SB': 'Pacific/Guadalcanal', 'SC': 'Indian/Mahe', 'SD': 'Africa/Khartoum', 'SE': 'Europe/Stockholm', 'SG': 'Asia/Singapore', 'SH': 'Atlantic/St_Helena', 'SI': 'Europe/Ljubljana', 'SJ': 'Arctic/Longyearbyen', 'SK': 'Europe/Bratislava', 'SL': 'Africa/Freetown', 'SM': 'Europe/San_Marino', 'SN': 'Africa/Dakar', 'SO': 'Africa/Mogadishu', 'SR': 'America/Paramaribo', 'SS': 'Africa/Juba', 'ST': 'Africa/Sao_Tome', 'SV': 'America/El_Salvador', 'SX': 'America/Curacao', 'SY': 'Asia/Damascus', 'SZ': 'Africa/Mbabane', 'TC': 'America/Grand_Turk', 'TD': 'Africa/Ndjamena', 'TF': 'Indian/Kerguelen', 'TG': 'Africa/Lome', 'TH': 'Asia/Bangkok', 'TJ': 'Asia/Dushanbe', 'TK': 'Pacific/Fakaofo', 'TL': 'Asia/Dili', 'TM': 'Asia/Ashgabat', 'TN': 'Africa/Tunis', 'TO': 'Pacific/Tongatapu', 'TR': 'Asia/Istanbul', 'TT': 'America/Port_of_Spain', 'TV': 'Pacific/Funafuti', 'TW': 'Asia/Taipei', 'TZ': 'Africa/Dar_es_Salaam', 'UA': { '01': 'Europe/Kiev', '02': 'Europe/Kiev', '03': 'Europe/Uzhgorod', '04': 'Europe/Zaporozhye', '05': 'Europe/Zaporozhye', '06': 'Europe/Uzhgorod', '07': 'Europe/Zaporozhye', '08': 'Europe/Simferopol', '09': 'Europe/Kiev', '10': 'Europe/Zaporozhye', '11': 'Europe/Simferopol', '13': 'Europe/Kiev', '14': 'Europe/Zaporozhye', '15': 'Europe/Uzhgorod', '16': 'Europe/Zaporozhye', '17': 'Europe/Simferopol', '18': 'Europe/Zaporozhye', '19': 'Europe/Kiev', '20': 'Europe/Simferopol', '21': 'Europe/Kiev', '22': 'Europe/Uzhgorod', '23': 'Europe/Kiev', '24': 'Europe/Uzhgorod', '25': 'Europe/Uzhgorod', '26': 'Europe/Zaporozhye', '27': 'Europe/Kiev' }, 'UG': 'Africa/Kampala', 'US': { 'AK': 'America/Anchorage', 'AL': 'America/Chicago', 'AR': 'America/Chicago', 'AZ': 'America/Phoenix', 'CA': 'America/Los_Angeles', 'CO': 'America/Denver', 'CT': 'America/New_York', 'DC': 'America/New_York', 'DE': 'America/New_York', 'FL': 'America/New_York', 'GA': 'America/New_York', 'HI': 'Pacific/Honolulu', 'IA': 'America/Chicago', 'ID': 'America/Denver', 'IL': 'America/Chicago', 'IN': 'America/Indianapolis', 'KS': 'America/Chicago', 'KY': 'America/New_York', 'LA': 'America/Chicago', 'MA': 'America/New_York', 'MD': 'America/New_York', 'ME': 'America/New_York', 'MI': 'America/New_York', 'MN': 'America/Chicago', 'MO': 'America/Chicago', 'MS': 'America/Chicago', 'MT': 'America/Denver', 'NC': 'America/New_York', 'ND': 'America/Chicago', 'NE': 'America/Chicago', 'NH': 'America/New_York', 'NJ': 'America/New_York', 'NM': 'America/Denver', 'NV': 'America/Los_Angeles', 'NY': 'America/New_York', 'OH': 'America/New_York', 'OK': 'America/Chicago', 'OR': 'America/Los_Angeles', 'PA': 'America/New_York', 'RI': 'America/New_York', 'SC': 'America/New_York', 'SD': 'America/Chicago', 'TN': 'America/Chicago', 'TX': 'America/Chicago', 'UT': 'America/Denver', 'VA': 'America/New_York', 'VT': 'America/New_York', 'WA': 'America/Los_Angeles', 'WI': 'America/Chicago', 'WV': 'America/New_York', 'WY': 'America/Denver' }, 'UY': 'America/Montevideo', 'UZ': { '01': 'Asia/Tashkent', '02': 'Asia/Samarkand', '03': 'Asia/Tashkent', '06': 'Asia/Tashkent', '07': 'Asia/Samarkand', '08': 'Asia/Samarkand', '09': 'Asia/Samarkand', '10': 'Asia/Samarkand', '12': 'Asia/Samarkand', '13': 'Asia/Tashkent', '14': 'Asia/Tashkent' }, 'VA': 'Europe/Vatican', 'VC': 'America/St_Vincent', 'VE': 'America/Caracas', 'VG': 'America/Tortola', 'VI': 'America/St_Thomas', 'VN': 'Asia/Phnom_Penh', 'VU': 'Pacific/Efate', 'WF': 'Pacific/Wallis', 'WS': 'Pacific/Samoa', 'YE': 'Asia/Aden', 'YT': 'Indian/Mayotte', 'YU': 'Europe/Belgrade', 'ZA': 'Africa/Johannesburg', 'ZM': 'Africa/Lusaka', 'ZW': 'Africa/Harare' } def time_zone_by_country_and_region(country_code, region_name=None): if country_code not in _country: return '' if not region_name or region_name == '00': region_name = None timezones = _country[country_code] if isinstance(timezones, str): return timezones if not region_name: return '' return timezones.get(region_name)