| Index: pygeoip/timezone.py |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/pygeoip/timezone.py |
| @@ -0,0 +1,760 @@ |
| +# -*- coding: utf-8 -*- |
| +""" |
| +Time zone functions. Part of the pygeoip package. |
| + |
| +@author: Jennifer Ennis <zaylea@gmail.com> |
| + |
| +@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 <http://www.gnu.org/licenses/lgpl.txt>. |
| +""" |
| + |
| +__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) |