Created
February 17, 2021 01:49
-
-
Save biblicabeebli/5cc40b4ded7edc03d07cb87336efb4b6 to your computer and use it in GitHub Desktop.
The proper way to get a list of timezones
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import defaultdict | |
from datetime import timedelta | |
import pytz | |
from dateutil import tz | |
def timedelta_to_label(td: timedelta) -> str: | |
""" returns a string like +1:00 """ | |
label = "-" + str(abs(td)) if td.total_seconds() < 0 else "+" + str(abs(td)) | |
return label[:-3] | |
def string_sorter(key: str): | |
""" get the first timedelta's floating point representation as the 'key' in our sort algo.""" | |
return float(key.split("/")[0].replace(":", ".")) | |
def build_dictionary_of_timezones(): | |
# defaultdicts are cool. | |
zones_by_offset = defaultdict(list) | |
# (at time of development) this provides all non-deprecated timezones. | |
tzs = [] | |
for _, timezones_by_country in pytz.country_timezones.items(): | |
tzs.extend(timezones_by_country) | |
tzs.sort() | |
# pytz.common_timezones includes some deprecated tzs, pytz.all_timezones has even more. | |
for zone_name in tzs: | |
# this 'tz_info' variable's type may be dependent on your platform, which is ... just insane. | |
# This has been tested and works on Ubuntu and AWS Linux 1. | |
tz_info: tz.tzfile = tz.gettz(zone_name) | |
utc_offset: timedelta = tz_info._ttinfo_std.delta | |
# No DST case | |
if tz_info._ttinfo_dst is None: | |
label = timedelta_to_label(utc_offset) | |
else: | |
dst_offset = tz_info._ttinfo_dst.delta | |
# fun timezone case: some timezones HAD daylight savings in the past, but not anymore. | |
# treat those as not having dst because anything else is madness. | |
if dst_offset == utc_offset: | |
label = timedelta_to_label(utc_offset) | |
else: | |
# this ordering yields +4:00/+5:00 ordering in most cases, but there are exceptions? | |
# It's not hemispheric, I don't what those places are doing with time. | |
label = f"{timedelta_to_label(utc_offset)}/{timedelta_to_label(dst_offset)}" | |
zones_by_offset[label].append(zone_name) | |
and_finally_sorted = {} | |
for offset in sorted(zones_by_offset, key=string_sorter): | |
and_finally_sorted[offset] = zones_by_offset[offset] | |
return and_finally_sorted | |
def flatten_time_zones(all_zones_by_offset): | |
""" Builds a dropdown-friendly list of tuples for populating a dropdown. """ | |
ret = [] | |
for offset_numbers, locations in all_zones_by_offset.items(): | |
for location_names in locations: | |
ret.append([location_names, offset_numbers + " - " + location_names]) | |
return ret | |
all_zones_by_offset = build_dictionary_of_timezones() | |
COMMON_TIMEZONES_DROPDOWN = flatten_time_zones(all_zones_by_offset) | |
# and statically: | |
COMMON_TIMEZONES_DROPDOWN = \ | |
[["Pacific/Midway", "-11:00 - Pacific/Midway"], | |
["Pacific/Niue", "-11:00 - Pacific/Niue"], | |
["Pacific/Pago_Pago", "-11:00 - Pacific/Pago_Pago"], | |
["America/Adak", "-10:00/-9:00 - America/Adak"], | |
["Pacific/Honolulu", "-10:00/-9:30 - Pacific/Honolulu"], | |
["Pacific/Rarotonga", "-10:00/-9:30 - Pacific/Rarotonga"], | |
["Pacific/Tahiti", "-10:00 - Pacific/Tahiti"], | |
["Pacific/Marquesas", "-9:30 - Pacific/Marquesas"], | |
["America/Anchorage", "-9:00/-8:00 - America/Anchorage"], | |
["America/Juneau", "-9:00/-8:00 - America/Juneau"], | |
["America/Metlakatla", "-9:00/-8:00 - America/Metlakatla"], | |
["America/Nome", "-9:00/-8:00 - America/Nome"], | |
["America/Sitka", "-9:00/-8:00 - America/Sitka"], | |
["America/Yakutat", "-9:00/-8:00 - America/Yakutat"], | |
["Pacific/Gambier", "-9:00 - Pacific/Gambier"], | |
["America/Los_Angeles", "-8:00/-7:00 - America/Los_Angeles"], | |
["America/Tijuana", "-8:00/-7:00 - America/Tijuana"], | |
["America/Vancouver", "-8:00/-7:00 - America/Vancouver"], | |
["Pacific/Pitcairn", "-8:00 - Pacific/Pitcairn"], | |
["America/Boise", "-7:00/-6:00 - America/Boise"], | |
["America/Cambridge_Bay", "-7:00/-6:00 - America/Cambridge_Bay"], | |
["America/Chihuahua", "-7:00/-6:00 - America/Chihuahua"], | |
["America/Denver", "-7:00/-6:00 - America/Denver"], | |
["America/Edmonton", "-7:00/-6:00 - America/Edmonton"], | |
["America/Hermosillo", "-7:00/-6:00 - America/Hermosillo"], | |
["America/Inuvik", "-7:00/-6:00 - America/Inuvik"], | |
["America/Mazatlan", "-7:00/-6:00 - America/Mazatlan"], | |
["America/Ojinaga", "-7:00/-6:00 - America/Ojinaga"], | |
["America/Phoenix", "-7:00/-6:00 - America/Phoenix"], | |
["America/Yellowknife", "-7:00/-6:00 - America/Yellowknife"], | |
["America/Creston", "-7:00 - America/Creston"], | |
["America/Dawson", "-7:00 - America/Dawson"], | |
["America/Dawson_Creek", "-7:00 - America/Dawson_Creek"], | |
["America/Fort_Nelson", "-7:00 - America/Fort_Nelson"], | |
["America/Whitehorse", "-7:00 - America/Whitehorse"], | |
["America/Bahia_Banderas", "-6:00/-5:00 - America/Bahia_Banderas"], | |
["America/Belize", "-6:00/-5:00 - America/Belize"], | |
["America/Chicago", "-6:00/-5:00 - America/Chicago"], | |
["America/Costa_Rica", "-6:00/-5:00 - America/Costa_Rica"], | |
["America/El_Salvador", "-6:00/-5:00 - America/El_Salvador"], | |
["America/Guatemala", "-6:00/-5:00 - America/Guatemala"], | |
["America/Indiana/Knox", "-6:00/-5:00 - America/Indiana/Knox"], | |
["America/Indiana/Tell_City", "-6:00/-5:00 - America/Indiana/Tell_City"], | |
["America/Managua", "-6:00/-5:00 - America/Managua"], | |
["America/Matamoros", "-6:00/-5:00 - America/Matamoros"], | |
["America/Menominee", "-6:00/-5:00 - America/Menominee"], | |
["America/Merida", "-6:00/-5:00 - America/Merida"], | |
["America/Mexico_City", "-6:00/-5:00 - America/Mexico_City"], | |
["America/Monterrey", "-6:00/-5:00 - America/Monterrey"], | |
["America/North_Dakota/Beulah", "-6:00/-5:00 - America/North_Dakota/Beulah"], | |
["America/North_Dakota/Center", "-6:00/-5:00 - America/North_Dakota/Center"], | |
["America/North_Dakota/New_Salem", "-6:00/-5:00 - America/North_Dakota/New_Salem"], | |
["America/Rainy_River", "-6:00/-5:00 - America/Rainy_River"], | |
["America/Rankin_Inlet", "-6:00/-5:00 - America/Rankin_Inlet"], | |
["America/Resolute", "-6:00/-5:00 - America/Resolute"], | |
["America/Tegucigalpa", "-6:00/-5:00 - America/Tegucigalpa"], | |
["America/Winnipeg", "-6:00/-5:00 - America/Winnipeg"], | |
["Pacific/Easter", "-6:00/-5:00 - Pacific/Easter"], | |
["Pacific/Galapagos", "-6:00/-5:00 - Pacific/Galapagos"], | |
["America/Regina", "-6:00 - America/Regina"], | |
["America/Swift_Current", "-6:00 - America/Swift_Current"], | |
["America/Atikokan", "-5:00 - America/Atikokan"], | |
["America/Cancun", "-5:00 - America/Cancun"], | |
["America/Cayman", "-5:00 - America/Cayman"], | |
["America/Panama", "-5:00 - America/Panama"], | |
["America/Bogota", "-5:00/-4:00 - America/Bogota"], | |
["America/Detroit", "-5:00/-4:00 - America/Detroit"], | |
["America/Eirunepe", "-5:00/-4:00 - America/Eirunepe"], | |
["America/Grand_Turk", "-5:00/-4:00 - America/Grand_Turk"], | |
["America/Guayaquil", "-5:00/-4:00 - America/Guayaquil"], | |
["America/Havana", "-5:00/-4:00 - America/Havana"], | |
["America/Indiana/Indianapolis", "-5:00/-4:00 - America/Indiana/Indianapolis"], | |
["America/Indiana/Marengo", "-5:00/-4:00 - America/Indiana/Marengo"], | |
["America/Indiana/Petersburg", "-5:00/-4:00 - America/Indiana/Petersburg"], | |
["America/Indiana/Vevay", "-5:00/-4:00 - America/Indiana/Vevay"], | |
["America/Indiana/Vincennes", "-5:00/-4:00 - America/Indiana/Vincennes"], | |
["America/Indiana/Winamac", "-5:00/-4:00 - America/Indiana/Winamac"], | |
["America/Iqaluit", "-5:00/-4:00 - America/Iqaluit"], | |
["America/Jamaica", "-5:00/-4:00 - America/Jamaica"], | |
["America/Kentucky/Louisville", "-5:00/-4:00 - America/Kentucky/Louisville"], | |
["America/Kentucky/Monticello", "-5:00/-4:00 - America/Kentucky/Monticello"], | |
["America/Lima", "-5:00/-4:00 - America/Lima"], | |
["America/Nassau", "-5:00/-4:00 - America/Nassau"], | |
["America/New_York", "-5:00/-4:00 - America/New_York"], | |
["America/Nipigon", "-5:00/-4:00 - America/Nipigon"], | |
["America/Pangnirtung", "-5:00/-4:00 - America/Pangnirtung"], | |
["America/Port-au-Prince", "-5:00/-4:00 - America/Port-au-Prince"], | |
["America/Rio_Branco", "-5:00/-4:00 - America/Rio_Branco"], | |
["America/Thunder_Bay", "-5:00/-4:00 - America/Thunder_Bay"], | |
["America/Toronto", "-5:00/-4:00 - America/Toronto"], | |
["America/Anguilla", "-4:00 - America/Anguilla"], | |
["America/Antigua", "-4:00 - America/Antigua"], | |
["America/Aruba", "-4:00 - America/Aruba"], | |
["America/Caracas", "-4:00 - America/Caracas"], | |
["America/Curacao", "-4:00 - America/Curacao"], | |
["America/Dominica", "-4:00 - America/Dominica"], | |
["America/Grenada", "-4:00 - America/Grenada"], | |
["America/Guadeloupe", "-4:00 - America/Guadeloupe"], | |
["America/Guyana", "-4:00 - America/Guyana"], | |
["America/Kralendijk", "-4:00 - America/Kralendijk"], | |
["America/Lower_Princes", "-4:00 - America/Lower_Princes"], | |
["America/Marigot", "-4:00 - America/Marigot"], | |
["America/Montserrat", "-4:00 - America/Montserrat"], | |
["America/Port_of_Spain", "-4:00 - America/Port_of_Spain"], | |
["America/St_Barthelemy", "-4:00 - America/St_Barthelemy"], | |
["America/St_Kitts", "-4:00 - America/St_Kitts"], | |
["America/St_Lucia", "-4:00 - America/St_Lucia"], | |
["America/St_Thomas", "-4:00 - America/St_Thomas"], | |
["America/St_Vincent", "-4:00 - America/St_Vincent"], | |
["America/Tortola", "-4:00 - America/Tortola"], | |
["America/Asuncion", "-4:00/-3:00 - America/Asuncion"], | |
["America/Barbados", "-4:00/-3:00 - America/Barbados"], | |
["America/Blanc-Sablon", "-4:00/-3:00 - America/Blanc-Sablon"], | |
["America/Boa_Vista", "-4:00/-3:00 - America/Boa_Vista"], | |
["America/Campo_Grande", "-4:00/-3:00 - America/Campo_Grande"], | |
["America/Cuiaba", "-4:00/-3:00 - America/Cuiaba"], | |
["America/Glace_Bay", "-4:00/-3:00 - America/Glace_Bay"], | |
["America/Goose_Bay", "-4:00/-3:00 - America/Goose_Bay"], | |
["America/Halifax", "-4:00/-3:00 - America/Halifax"], | |
["America/Manaus", "-4:00/-3:00 - America/Manaus"], | |
["America/Martinique", "-4:00/-3:00 - America/Martinique"], | |
["America/Moncton", "-4:00/-3:00 - America/Moncton"], | |
["America/Porto_Velho", "-4:00/-3:00 - America/Porto_Velho"], | |
["America/Puerto_Rico", "-4:00/-3:00 - America/Puerto_Rico"], | |
["America/Santiago", "-4:00/-3:00 - America/Santiago"], | |
["America/Thule", "-4:00/-3:00 - America/Thule"], | |
["Atlantic/Bermuda", "-4:00/-3:00 - Atlantic/Bermuda"], | |
["America/La_Paz", "-4:00/-3:32 - America/La_Paz"], | |
["America/Santo_Domingo", "-4:00/-4:30 - America/Santo_Domingo"], | |
["America/St_Johns", "-3:30/-2:30 - America/St_Johns"], | |
["America/Araguaina", "-3:00/-2:00 - America/Araguaina"], | |
["America/Argentina/Buenos_Aires", "-3:00/-2:00 - America/Argentina/Buenos_Aires"], | |
["America/Argentina/Catamarca", "-3:00/-2:00 - America/Argentina/Catamarca"], | |
["America/Argentina/Cordoba", "-3:00/-2:00 - America/Argentina/Cordoba"], | |
["America/Argentina/Jujuy", "-3:00/-2:00 - America/Argentina/Jujuy"], | |
["America/Argentina/La_Rioja", "-3:00/-2:00 - America/Argentina/La_Rioja"], | |
["America/Argentina/Mendoza", "-3:00/-2:00 - America/Argentina/Mendoza"], | |
["America/Argentina/Rio_Gallegos", "-3:00/-2:00 - America/Argentina/Rio_Gallegos"], | |
["America/Argentina/Salta", "-3:00/-2:00 - America/Argentina/Salta"], | |
["America/Argentina/San_Juan", "-3:00/-2:00 - America/Argentina/San_Juan"], | |
["America/Argentina/Tucuman", "-3:00/-2:00 - America/Argentina/Tucuman"], | |
["America/Argentina/Ushuaia", "-3:00/-2:00 - America/Argentina/Ushuaia"], | |
["America/Bahia", "-3:00/-2:00 - America/Bahia"], | |
["America/Belem", "-3:00/-2:00 - America/Belem"], | |
["America/Fortaleza", "-3:00/-2:00 - America/Fortaleza"], | |
["America/Maceio", "-3:00/-2:00 - America/Maceio"], | |
["America/Miquelon", "-3:00/-2:00 - America/Miquelon"], | |
["America/Montevideo", "-3:00/-2:00 - America/Montevideo"], | |
["America/Nuuk", "-3:00/-2:00 - America/Nuuk"], | |
["America/Recife", "-3:00/-2:00 - America/Recife"], | |
["America/Sao_Paulo", "-3:00/-2:00 - America/Sao_Paulo"], | |
["America/Argentina/San_Luis", "-3:00 - America/Argentina/San_Luis"], | |
["America/Cayenne", "-3:00 - America/Cayenne"], | |
["America/Paramaribo", "-3:00 - America/Paramaribo"], | |
["America/Punta_Arenas", "-3:00 - America/Punta_Arenas"], | |
["America/Santarem", "-3:00 - America/Santarem"], | |
["Antarctica/Palmer", "-3:00 - Antarctica/Palmer"], | |
["Antarctica/Rothera", "-3:00 - Antarctica/Rothera"], | |
["Atlantic/Stanley", "-3:00 - Atlantic/Stanley"], | |
["America/Noronha", "-2:00/-1:00 - America/Noronha"], | |
["Atlantic/South_Georgia", "-2:00 - Atlantic/South_Georgia"], | |
["America/Scoresbysund", "-1:00/+0:00 - America/Scoresbysund"], | |
["Atlantic/Azores", "-1:00/+0:00 - Atlantic/Azores"], | |
["Atlantic/Cape_Verde", "-1:00 - Atlantic/Cape_Verde"], | |
["Africa/Abidjan", "+0:00 - Africa/Abidjan"], | |
["Africa/Bamako", "+0:00 - Africa/Bamako"], | |
["Africa/Banjul", "+0:00 - Africa/Banjul"], | |
["Africa/Bissau", "+0:00 - Africa/Bissau"], | |
["Africa/Conakry", "+0:00 - Africa/Conakry"], | |
["Africa/Dakar", "+0:00 - Africa/Dakar"], | |
["Africa/Freetown", "+0:00 - Africa/Freetown"], | |
["Africa/Lome", "+0:00 - Africa/Lome"], | |
["Africa/Monrovia", "+0:00 - Africa/Monrovia"], | |
["Africa/Nouakchott", "+0:00 - Africa/Nouakchott"], | |
["Africa/Ouagadougou", "+0:00 - Africa/Ouagadougou"], | |
["Africa/Sao_Tome", "+0:00 - Africa/Sao_Tome"], | |
["Atlantic/Reykjavik", "+0:00 - Atlantic/Reykjavik"], | |
["Atlantic/St_Helena", "+0:00 - Atlantic/St_Helena"], | |
["Africa/Accra", "+0:00/+0:30 - Africa/Accra"], | |
["America/Danmarkshavn", "+0:00/-2:00 - America/Danmarkshavn"], | |
["Antarctica/Troll", "+0:00/+2:00 - Antarctica/Troll"], | |
["Atlantic/Canary", "+0:00/+1:00 - Atlantic/Canary"], | |
["Atlantic/Faroe", "+0:00/+1:00 - Atlantic/Faroe"], | |
["Atlantic/Madeira", "+0:00/+1:00 - Atlantic/Madeira"], | |
["Europe/Guernsey", "+0:00/+1:00 - Europe/Guernsey"], | |
["Europe/Isle_of_Man", "+0:00/+1:00 - Europe/Isle_of_Man"], | |
["Europe/Jersey", "+0:00/+1:00 - Europe/Jersey"], | |
["Europe/Lisbon", "+0:00/+1:00 - Europe/Lisbon"], | |
["Europe/London", "+0:00/+1:00 - Europe/London"], | |
["Africa/Algiers", "+1:00 - Africa/Algiers"], | |
["Africa/Bangui", "+1:00 - Africa/Bangui"], | |
["Africa/Brazzaville", "+1:00 - Africa/Brazzaville"], | |
["Africa/Douala", "+1:00 - Africa/Douala"], | |
["Africa/Kinshasa", "+1:00 - Africa/Kinshasa"], | |
["Africa/Lagos", "+1:00 - Africa/Lagos"], | |
["Africa/Libreville", "+1:00 - Africa/Libreville"], | |
["Africa/Luanda", "+1:00 - Africa/Luanda"], | |
["Africa/Malabo", "+1:00 - Africa/Malabo"], | |
["Africa/Niamey", "+1:00 - Africa/Niamey"], | |
["Africa/Porto-Novo", "+1:00 - Africa/Porto-Novo"], | |
["Africa/Casablanca", "+1:00/+0:00 - Africa/Casablanca"], | |
["Africa/El_Aaiun", "+1:00/+0:00 - Africa/El_Aaiun"], | |
["Europe/Dublin", "+1:00/+0:00 - Europe/Dublin"], | |
["Africa/Ceuta", "+1:00/+2:00 - Africa/Ceuta"], | |
["Africa/Ndjamena", "+1:00/+2:00 - Africa/Ndjamena"], | |
["Africa/Tunis", "+1:00/+2:00 - Africa/Tunis"], | |
["Arctic/Longyearbyen", "+1:00/+2:00 - Arctic/Longyearbyen"], | |
["Europe/Amsterdam", "+1:00/+2:00 - Europe/Amsterdam"], | |
["Europe/Andorra", "+1:00/+2:00 - Europe/Andorra"], | |
["Europe/Belgrade", "+1:00/+2:00 - Europe/Belgrade"], | |
["Europe/Berlin", "+1:00/+2:00 - Europe/Berlin"], | |
["Europe/Bratislava", "+1:00/+2:00 - Europe/Bratislava"], | |
["Europe/Brussels", "+1:00/+2:00 - Europe/Brussels"], | |
["Europe/Budapest", "+1:00/+2:00 - Europe/Budapest"], | |
["Europe/Busingen", "+1:00/+2:00 - Europe/Busingen"], | |
["Europe/Copenhagen", "+1:00/+2:00 - Europe/Copenhagen"], | |
["Europe/Gibraltar", "+1:00/+2:00 - Europe/Gibraltar"], | |
["Europe/Ljubljana", "+1:00/+2:00 - Europe/Ljubljana"], | |
["Europe/Luxembourg", "+1:00/+2:00 - Europe/Luxembourg"], | |
["Europe/Madrid", "+1:00/+2:00 - Europe/Madrid"], | |
["Europe/Malta", "+1:00/+2:00 - Europe/Malta"], | |
["Europe/Monaco", "+1:00/+2:00 - Europe/Monaco"], | |
["Europe/Oslo", "+1:00/+2:00 - Europe/Oslo"], | |
["Europe/Paris", "+1:00/+2:00 - Europe/Paris"], | |
["Europe/Podgorica", "+1:00/+2:00 - Europe/Podgorica"], | |
["Europe/Prague", "+1:00/+2:00 - Europe/Prague"], | |
["Europe/Rome", "+1:00/+2:00 - Europe/Rome"], | |
["Europe/San_Marino", "+1:00/+2:00 - Europe/San_Marino"], | |
["Europe/Sarajevo", "+1:00/+2:00 - Europe/Sarajevo"], | |
["Europe/Skopje", "+1:00/+2:00 - Europe/Skopje"], | |
["Europe/Stockholm", "+1:00/+2:00 - Europe/Stockholm"], | |
["Europe/Tirane", "+1:00/+2:00 - Europe/Tirane"], | |
["Europe/Vaduz", "+1:00/+2:00 - Europe/Vaduz"], | |
["Europe/Vatican", "+1:00/+2:00 - Europe/Vatican"], | |
["Europe/Vienna", "+1:00/+2:00 - Europe/Vienna"], | |
["Europe/Warsaw", "+1:00/+2:00 - Europe/Warsaw"], | |
["Europe/Zagreb", "+1:00/+2:00 - Europe/Zagreb"], | |
["Europe/Zurich", "+1:00/+2:00 - Europe/Zurich"], | |
["Africa/Blantyre", "+2:00 - Africa/Blantyre"], | |
["Africa/Bujumbura", "+2:00 - Africa/Bujumbura"], | |
["Africa/Gaborone", "+2:00 - Africa/Gaborone"], | |
["Africa/Harare", "+2:00 - Africa/Harare"], | |
["Africa/Kigali", "+2:00 - Africa/Kigali"], | |
["Africa/Lubumbashi", "+2:00 - Africa/Lubumbashi"], | |
["Africa/Lusaka", "+2:00 - Africa/Lusaka"], | |
["Africa/Maputo", "+2:00 - Africa/Maputo"], | |
["Africa/Tripoli", "+2:00 - Africa/Tripoli"], | |
["Africa/Cairo", "+2:00/+3:00 - Africa/Cairo"], | |
["Africa/Johannesburg", "+2:00/+3:00 - Africa/Johannesburg"], | |
["Africa/Juba", "+2:00/+3:00 - Africa/Juba"], | |
["Africa/Khartoum", "+2:00/+3:00 - Africa/Khartoum"], | |
["Africa/Maseru", "+2:00/+3:00 - Africa/Maseru"], | |
["Africa/Mbabane", "+2:00/+3:00 - Africa/Mbabane"], | |
["Asia/Amman", "+2:00/+3:00 - Asia/Amman"], | |
["Asia/Beirut", "+2:00/+3:00 - Asia/Beirut"], | |
["Asia/Damascus", "+2:00/+3:00 - Asia/Damascus"], | |
["Asia/Famagusta", "+2:00/+3:00 - Asia/Famagusta"], | |
["Asia/Gaza", "+2:00/+3:00 - Asia/Gaza"], | |
["Asia/Hebron", "+2:00/+3:00 - Asia/Hebron"], | |
["Asia/Jerusalem", "+2:00/+3:00 - Asia/Jerusalem"], | |
["Asia/Nicosia", "+2:00/+3:00 - Asia/Nicosia"], | |
["Europe/Athens", "+2:00/+3:00 - Europe/Athens"], | |
["Europe/Bucharest", "+2:00/+3:00 - Europe/Bucharest"], | |
["Europe/Chisinau", "+2:00/+3:00 - Europe/Chisinau"], | |
["Europe/Helsinki", "+2:00/+3:00 - Europe/Helsinki"], | |
["Europe/Kaliningrad", "+2:00/+3:00 - Europe/Kaliningrad"], | |
["Europe/Kiev", "+2:00/+3:00 - Europe/Kiev"], | |
["Europe/Mariehamn", "+2:00/+3:00 - Europe/Mariehamn"], | |
["Europe/Riga", "+2:00/+3:00 - Europe/Riga"], | |
["Europe/Sofia", "+2:00/+3:00 - Europe/Sofia"], | |
["Europe/Tallinn", "+2:00/+3:00 - Europe/Tallinn"], | |
["Europe/Uzhgorod", "+2:00/+3:00 - Europe/Uzhgorod"], | |
["Europe/Vilnius", "+2:00/+3:00 - Europe/Vilnius"], | |
["Europe/Zaporozhye", "+2:00/+3:00 - Europe/Zaporozhye"], | |
["Africa/Windhoek", "+2:00/+1:00 - Africa/Windhoek"], | |
["Africa/Addis_Ababa", "+3:00 - Africa/Addis_Ababa"], | |
["Africa/Asmara", "+3:00 - Africa/Asmara"], | |
["Africa/Dar_es_Salaam", "+3:00 - Africa/Dar_es_Salaam"], | |
["Africa/Djibouti", "+3:00 - Africa/Djibouti"], | |
["Africa/Kampala", "+3:00 - Africa/Kampala"], | |
["Africa/Mogadishu", "+3:00 - Africa/Mogadishu"], | |
["Africa/Nairobi", "+3:00 - Africa/Nairobi"], | |
["Antarctica/Syowa", "+3:00 - Antarctica/Syowa"], | |
["Asia/Aden", "+3:00 - Asia/Aden"], | |
["Asia/Bahrain", "+3:00 - Asia/Bahrain"], | |
["Asia/Kuwait", "+3:00 - Asia/Kuwait"], | |
["Asia/Qatar", "+3:00 - Asia/Qatar"], | |
["Asia/Riyadh", "+3:00 - Asia/Riyadh"], | |
["Europe/Istanbul", "+3:00 - Europe/Istanbul"], | |
["Europe/Minsk", "+3:00 - Europe/Minsk"], | |
["Europe/Simferopol", "+3:00 - Europe/Simferopol"], | |
["Indian/Antananarivo", "+3:00 - Indian/Antananarivo"], | |
["Indian/Comoro", "+3:00 - Indian/Comoro"], | |
["Indian/Mayotte", "+3:00 - Indian/Mayotte"], | |
["Asia/Baghdad", "+3:00/+4:00 - Asia/Baghdad"], | |
["Europe/Kirov", "+3:00/+4:00 - Europe/Kirov"], | |
["Europe/Moscow", "+3:00/+4:00 - Europe/Moscow"], | |
["Europe/Volgograd", "+3:00/+4:00 - Europe/Volgograd"], | |
["Asia/Tehran", "+3:30/+4:30 - Asia/Tehran"], | |
["Asia/Baku", "+4:00/+5:00 - Asia/Baku"], | |
["Asia/Yerevan", "+4:00/+5:00 - Asia/Yerevan"], | |
["Indian/Mauritius", "+4:00/+5:00 - Indian/Mauritius"], | |
["Asia/Dubai", "+4:00 - Asia/Dubai"], | |
["Asia/Muscat", "+4:00 - Asia/Muscat"], | |
["Asia/Tbilisi", "+4:00 - Asia/Tbilisi"], | |
["Europe/Astrakhan", "+4:00 - Europe/Astrakhan"], | |
["Europe/Samara", "+4:00 - Europe/Samara"], | |
["Europe/Saratov", "+4:00 - Europe/Saratov"], | |
["Europe/Ulyanovsk", "+4:00 - Europe/Ulyanovsk"], | |
["Indian/Mahe", "+4:00 - Indian/Mahe"], | |
["Indian/Reunion", "+4:00 - Indian/Reunion"], | |
["Asia/Kabul", "+4:30 - Asia/Kabul"], | |
["Antarctica/Mawson", "+5:00 - Antarctica/Mawson"], | |
["Asia/Aqtau", "+5:00 - Asia/Aqtau"], | |
["Asia/Ashgabat", "+5:00 - Asia/Ashgabat"], | |
["Asia/Atyrau", "+5:00 - Asia/Atyrau"], | |
["Asia/Oral", "+5:00 - Asia/Oral"], | |
["Indian/Kerguelen", "+5:00 - Indian/Kerguelen"], | |
["Indian/Maldives", "+5:00 - Indian/Maldives"], | |
["Asia/Aqtobe", "+5:00/+6:00 - Asia/Aqtobe"], | |
["Asia/Dushanbe", "+5:00/+6:00 - Asia/Dushanbe"], | |
["Asia/Karachi", "+5:00/+6:00 - Asia/Karachi"], | |
["Asia/Qyzylorda", "+5:00/+6:00 - Asia/Qyzylorda"], | |
["Asia/Samarkand", "+5:00/+6:00 - Asia/Samarkand"], | |
["Asia/Tashkent", "+5:00/+6:00 - Asia/Tashkent"], | |
["Asia/Yekaterinburg", "+5:00/+6:00 - Asia/Yekaterinburg"], | |
["Asia/Colombo", "+5:30/+6:30 - Asia/Colombo"], | |
["Asia/Kolkata", "+5:30/+6:30 - Asia/Kolkata"], | |
["Asia/Kathmandu", "+5:45 - Asia/Kathmandu"], | |
["Antarctica/Vostok", "+6:00 - Antarctica/Vostok"], | |
["Asia/Bishkek", "+6:00 - Asia/Bishkek"], | |
["Asia/Qostanay", "+6:00 - Asia/Qostanay"], | |
["Asia/Thimphu", "+6:00 - Asia/Thimphu"], | |
["Asia/Urumqi", "+6:00 - Asia/Urumqi"], | |
["Indian/Chagos", "+6:00 - Indian/Chagos"], | |
["Asia/Almaty", "+6:00/+7:00 - Asia/Almaty"], | |
["Asia/Dhaka", "+6:00/+7:00 - Asia/Dhaka"], | |
["Asia/Omsk", "+6:00/+7:00 - Asia/Omsk"], | |
["Asia/Yangon", "+6:30 - Asia/Yangon"], | |
["Indian/Cocos", "+6:30 - Indian/Cocos"], | |
["Antarctica/Davis", "+7:00 - Antarctica/Davis"], | |
["Asia/Bangkok", "+7:00 - Asia/Bangkok"], | |
["Asia/Barnaul", "+7:00 - Asia/Barnaul"], | |
["Asia/Ho_Chi_Minh", "+7:00 - Asia/Ho_Chi_Minh"], | |
["Asia/Jakarta", "+7:00 - Asia/Jakarta"], | |
["Asia/Novokuznetsk", "+7:00 - Asia/Novokuznetsk"], | |
["Asia/Novosibirsk", "+7:00 - Asia/Novosibirsk"], | |
["Asia/Phnom_Penh", "+7:00 - Asia/Phnom_Penh"], | |
["Asia/Pontianak", "+7:00 - Asia/Pontianak"], | |
["Asia/Tomsk", "+7:00 - Asia/Tomsk"], | |
["Asia/Vientiane", "+7:00 - Asia/Vientiane"], | |
["Indian/Christmas", "+7:00 - Indian/Christmas"], | |
["Asia/Hovd", "+7:00/+8:00 - Asia/Hovd"], | |
["Asia/Krasnoyarsk", "+7:00/+8:00 - Asia/Krasnoyarsk"], | |
["Asia/Brunei", "+8:00 - Asia/Brunei"], | |
["Asia/Makassar", "+8:00 - Asia/Makassar"], | |
["Asia/Choibalsan", "+8:00/+9:00 - Asia/Choibalsan"], | |
["Asia/Hong_Kong", "+8:00/+9:00 - Asia/Hong_Kong"], | |
["Asia/Irkutsk", "+8:00/+9:00 - Asia/Irkutsk"], | |
["Asia/Macau", "+8:00/+9:00 - Asia/Macau"], | |
["Asia/Manila", "+8:00/+9:00 - Asia/Manila"], | |
["Asia/Shanghai", "+8:00/+9:00 - Asia/Shanghai"], | |
["Asia/Taipei", "+8:00/+9:00 - Asia/Taipei"], | |
["Asia/Ulaanbaatar", "+8:00/+9:00 - Asia/Ulaanbaatar"], | |
["Australia/Perth", "+8:00/+9:00 - Australia/Perth"], | |
["Asia/Kuala_Lumpur", "+8:00/+7:20 - Asia/Kuala_Lumpur"], | |
["Asia/Singapore", "+8:00/+7:20 - Asia/Singapore"], | |
["Asia/Kuching", "+8:00/+8:20 - Asia/Kuching"], | |
["Australia/Eucla", "+8:45/+9:45 - Australia/Eucla"], | |
["Asia/Chita", "+9:00/+10:00 - Asia/Chita"], | |
["Asia/Seoul", "+9:00/+10:00 - Asia/Seoul"], | |
["Asia/Tokyo", "+9:00/+10:00 - Asia/Tokyo"], | |
["Asia/Yakutsk", "+9:00/+10:00 - Asia/Yakutsk"], | |
["Asia/Dili", "+9:00 - Asia/Dili"], | |
["Asia/Jayapura", "+9:00 - Asia/Jayapura"], | |
["Asia/Pyongyang", "+9:00 - Asia/Pyongyang"], | |
["Pacific/Palau", "+9:00 - Pacific/Palau"], | |
["Asia/Khandyga", "+9:00/+11:00 - Asia/Khandyga"], | |
["Australia/Adelaide", "+9:30/+10:30 - Australia/Adelaide"], | |
["Australia/Broken_Hill", "+9:30/+10:30 - Australia/Broken_Hill"], | |
["Australia/Darwin", "+9:30/+10:30 - Australia/Darwin"], | |
["Antarctica/DumontDUrville", "+10:00 - Antarctica/DumontDUrville"], | |
["Pacific/Chuuk", "+10:00 - Pacific/Chuuk"], | |
["Pacific/Port_Moresby", "+10:00 - Pacific/Port_Moresby"], | |
["Antarctica/Macquarie", "+10:00/+11:00 - Antarctica/Macquarie"], | |
["Asia/Vladivostok", "+10:00/+11:00 - Asia/Vladivostok"], | |
["Australia/Brisbane", "+10:00/+11:00 - Australia/Brisbane"], | |
["Australia/Currie", "+10:00/+11:00 - Australia/Currie"], | |
["Australia/Hobart", "+10:00/+11:00 - Australia/Hobart"], | |
["Australia/Lindeman", "+10:00/+11:00 - Australia/Lindeman"], | |
["Australia/Melbourne", "+10:00/+11:00 - Australia/Melbourne"], | |
["Australia/Sydney", "+10:00/+11:00 - Australia/Sydney"], | |
["Pacific/Guam", "+10:00/+11:00 - Pacific/Guam"], | |
["Pacific/Saipan", "+10:00/+11:00 - Pacific/Saipan"], | |
["Asia/Ust-Nera", "+10:00/+12:00 - Asia/Ust-Nera"], | |
["Australia/Lord_Howe", "+10:30/+11:00 - Australia/Lord_Howe"], | |
["Antarctica/Casey", "+11:00 - Antarctica/Casey"], | |
["Asia/Sakhalin", "+11:00 - Asia/Sakhalin"], | |
["Pacific/Bougainville", "+11:00 - Pacific/Bougainville"], | |
["Pacific/Guadalcanal", "+11:00 - Pacific/Guadalcanal"], | |
["Pacific/Kosrae", "+11:00 - Pacific/Kosrae"], | |
["Pacific/Pohnpei", "+11:00 - Pacific/Pohnpei"], | |
["Asia/Magadan", "+11:00/+12:00 - Asia/Magadan"], | |
["Asia/Srednekolymsk", "+11:00/+12:00 - Asia/Srednekolymsk"], | |
["Pacific/Efate", "+11:00/+12:00 - Pacific/Efate"], | |
["Pacific/Norfolk", "+11:00/+12:00 - Pacific/Norfolk"], | |
["Pacific/Noumea", "+11:00/+12:00 - Pacific/Noumea"], | |
["Antarctica/McMurdo", "+12:00/+13:00 - Antarctica/McMurdo"], | |
["Pacific/Auckland", "+12:00/+13:00 - Pacific/Auckland"], | |
["Pacific/Fiji", "+12:00/+13:00 - Pacific/Fiji"], | |
["Asia/Anadyr", "+12:00 - Asia/Anadyr"], | |
["Asia/Kamchatka", "+12:00 - Asia/Kamchatka"], | |
["Pacific/Funafuti", "+12:00 - Pacific/Funafuti"], | |
["Pacific/Kwajalein", "+12:00 - Pacific/Kwajalein"], | |
["Pacific/Majuro", "+12:00 - Pacific/Majuro"], | |
["Pacific/Nauru", "+12:00 - Pacific/Nauru"], | |
["Pacific/Tarawa", "+12:00 - Pacific/Tarawa"], | |
["Pacific/Wake", "+12:00 - Pacific/Wake"], | |
["Pacific/Wallis", "+12:00 - Pacific/Wallis"], | |
["Pacific/Chatham", "+12:45/+13:45 - Pacific/Chatham"], | |
["Pacific/Apia", "+13:00/+14:00 - Pacific/Apia"], | |
["Pacific/Tongatapu", "+13:00/+14:00 - Pacific/Tongatapu"], | |
["Pacific/Enderbury", "+13:00 - Pacific/Enderbury"], | |
["Pacific/Fakaofo", "+13:00 - Pacific/Fakaofo"], | |
["Pacific/Kiritimati", "+14:00 - Pacific/Kiritimati"]] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment