Skip to content

Instantly share code, notes, and snippets.

@ngobin
Last active December 11, 2024 19:42
Show Gist options
  • Save ngobin/1833152876130e7eb3f7f0e9443ca480 to your computer and use it in GitHub Desktop.
Save ngobin/1833152876130e7eb3f7f0e9443ca480 to your computer and use it in GitHub Desktop.
YAML file that maps IANA time zones (from TZInfo Gem as of December 2024) to Rails ActiveSupport::TimeZone names.
# Key: IANA Time Zone name, Value: Rails Time Zone name (ActiveSupport::TimeZone)
Africa/Abidjan: Monrovia
Africa/Accra: Monrovia
Africa/Addis_Ababa: Nairobi
Africa/Algiers: West Central Africa
Africa/Asmara: Kuwait
Africa/Asmera: Nairobi
Africa/Bamako: Monrovia
Africa/Bangui: West Central Africa
Africa/Banjul: Monrovia
Africa/Bissau: Monrovia
Africa/Blantyre: Harare
Africa/Brazzaville: West Central Africa
Africa/Bujumbura: Harare
Africa/Cairo: Cairo
Africa/Casablanca: Casablanca
Africa/Ceuta: Brussels
Africa/Conakry: Monrovia
Africa/Dakar: Monrovia
Africa/Dar_es_Salaam: Nairobi
Africa/Djibouti: Nairobi
Africa/Douala: West Central Africa
Africa/El_Aaiun: Casablanca
Africa/Freetown: Monrovia
Africa/Gaborone: Harare
Africa/Harare: Harare
Africa/Johannesburg: Pretoria
Africa/Juba: Harare
Africa/Kampala: Nairobi
Africa/Khartoum: Harare
Africa/Kigali: Harare
Africa/Kinshasa: West Central Africa
Africa/Lagos: West Central Africa
Africa/Libreville: West Central Africa
Africa/Lome: Monrovia
Africa/Luanda: West Central Africa
Africa/Lubumbashi: Harare
Africa/Lusaka: Harare
Africa/Malabo: West Central Africa
Africa/Maputo: Harare
Africa/Maseru: Harare
Africa/Mbabane: Harare
Africa/Mogadishu: Nairobi
Africa/Monrovia: Monrovia
Africa/Nairobi: Nairobi
Africa/Ndjamena: West Central Africa
Africa/Niamey: West Central Africa
Africa/Nouakchott: Monrovia
Africa/Ouagadougou: Monrovia
Africa/Porto-Novo: West Central Africa
Africa/Sao_Tome: Monrovia
Africa/Timbuktu: UTC
Africa/Tripoli: Pretoria
Africa/Tunis: West Central Africa
Africa/Windhoek: Harare
America/Adak: Hawaii # no proper ActiveSupport::TimeZone mapping - s/b Hawaii time but observes DST
America/Anchorage: Alaska
America/Anguilla: Georgetown
America/Antigua: Georgetown
America/Araguaina: Brasilia
America/Argentina/Buenos_Aires: Buenos Aires
America/Argentina/Catamarca: Buenos Aires
America/Argentina/ComodRivadavia: Buenos Aires
America/Argentina/Cordoba: Buenos Aires
America/Argentina/Jujuy: Buenos Aires
America/Argentina/La_Rioja: Buenos Aires
America/Argentina/Mendoza: Buenos Aires
America/Argentina/Rio_Gallegos: Buenos Aires
America/Argentina/Salta: Buenos Aires
America/Argentina/San_Juan: Buenos Aires
America/Argentina/San_Luis: Buenos Aires
America/Argentina/Tucuman: Buenos Aires
America/Argentina/Ushuaia: Buenos Aires
America/Aruba: Georgetown
America/Asuncion: Buenos Aires # no proper ActiveSupport::TimeZone mapping - has winter DST
America/Atikokan: Bogota
America/Atka: Hawaii # no proper ActiveSupport::TimeZone mapping - s/b Hawaii time but observes DST
America/Bahia_Banderas: Guadalajara
America/Bahia: Brasilia
America/Barbados: Georgetown
America/Belem: Brasilia
America/Belize: Central America
America/Blanc-Sablon: Georgetown
America/Boa_Vista: Georgetown
America/Bogota: Bogota
America/Boise: Mountain Time (US & Canada)
America/Buenos_Aires: Buenos Aires
America/Cambridge_Bay: Mountain Time (US & Canada)
America/Campo_Grande: La Paz
America/Cancun: Bogota
America/Caracas: Caracas
America/Catamarca: Buenos Aires
America/Cayenne: Brasilia
America/Cayman: Bogota
America/Chicago: Central Time (US & Canada)
America/Chihuahua: Chihuahua
America/Ciudad_Juarez: Mountain Time (US & Canada)
America/Coral_Harbour: Bogota
America/Cordoba: Buenos Aires
America/Costa_Rica: Central America
America/Creston: Arizona
America/Cuiaba: La Paz
America/Curacao: Georgetown
America/Danmarkshavn: UTC
America/Dawson_Creek: Arizona
America/Dawson: Arizona
America/Denver: Mountain Time (US & Canada)
America/Detroit: Eastern Time (US & Canada)
America/Dominica: Georgetown
America/Edmonton: Mountain Time (US & Canada)
America/Eirunepe: Bogota
America/El_Salvador: Central America
America/Ensenada: Tijuana
America/Fort_Nelson: Arizona
America/Fort_Wayne: Eastern Time (US & Canada)
America/Fortaleza: Brasilia
America/Glace_Bay: Atlantic Time (Canada)
America/Godthab: Greenland
America/Goose_Bay: Atlantic Time (Canada)
America/Grand_Turk: Eastern Time (US & Canada)
America/Grenada: Georgetown
America/Guadeloupe: Georgetown
America/Guatemala: Central America
America/Guayaquil: Bogota
America/Guyana: Georgetown
America/Halifax: Atlantic Time (Canada)
America/Havana: Eastern Time (US & Canada)
America/Hermosillo: Arizona
America/Indiana/Indianapolis: Indiana (East)
America/Indiana/Knox: Central Time (US & Canada)
America/Indiana/Marengo: Indiana (East)
America/Indiana/Petersburg: Eastern Time (US & Canada)
America/Indiana/Tell_City: Central Time (US & Canada)
America/Indiana/Vevay: Indiana (East)
America/Indiana/Vincennes: Eastern Time (US & Canada)
America/Indiana/Winamac: Eastern Time (US & Canada)
America/Indianapolis: Indiana (East)
America/Inuvik: Mountain Time (US & Canada)
America/Iqaluit: Eastern Time (US & Canada)
America/Jamaica: Bogota
America/Jujuy: Buenos Aires
America/Juneau: Alaska
America/Kentucky/Louisville: Eastern Time (US & Canada)
America/Kentucky/Monticello: Eastern Time (US & Canada)
America/Knox_IN: Central Time (US & Canada)
America/Kralendijk: Georgetown
America/La_Paz: La Paz
America/Lima: Lima
America/Los_Angeles: Pacific Time (US & Canada)
America/Louisville: Eastern Time (US & Canada)
America/Lower_Princes: Georgetown
America/Maceio: Brasilia
America/Managua: Central America
America/Manaus: Georgetown
America/Marigot: Georgetown
America/Martinique: Georgetown
America/Matamoros: Central Time (US & Canada)
America/Mazatlan: Mazatlan
America/Mendoza: Buenos Aires
America/Menominee: Central Time (US & Canada)
America/Merida: Guadalajara
America/Metlakatla: Alaska
America/Mexico_City: Mexico City
America/Miquelon: Atlantic Time (Canada) # no proper ActiveSupport::TimeZone mapping - s/b UTC-3 with DST
America/Moncton: Atlantic Time (Canada)
America/Monterrey: Monterrey
America/Montevideo: Montevideo
America/Montreal: Eastern Time (US & Canada)
America/Montserrat: Georgetown
America/Nassau: Eastern Time (US & Canada)
America/New_York: Eastern Time (US & Canada)
America/Nipigon: Eastern Time (US & Canada)
America/Nome: Alaska
America/Noronha: Mid-Atlantic
America/North_Dakota/Beulah: Central Time (US & Canada)
America/North_Dakota/Center: Central Time (US & Canada)
America/North_Dakota/New_Salem: Central Time (US & Canada)
America/Nuuk: Greenland
America/Ojinaga: Central Time (US & Canada)
America/Panama: Bogota
America/Pangnirtung: Eastern Time (US & Canada)
America/Paramaribo: Brasilia
America/Phoenix: Arizona
America/Port_of_Spain: Georgetown
America/Port-au-Prince: Eastern Time (US & Canada)
America/Porto_Acre: Bogota
America/Porto_Velho: Georgetown
America/Puerto_Rico: Georgetown
America/Punta_Arenas: Buenos Aires
America/Rainy_River: Central Time (US & Canada)
America/Rankin_Inlet: Central Time (US & Canada)
America/Recife: Brasilia
America/Regina: Saskatchewan
America/Resolute: Central Time (US & Canada)
America/Rio_Branco: Bogota
America/Rosario: Buenos Aires
America/Santa_Isabel: Tijuana
America/Santarem: Brasilia
America/Santiago: Santiago
America/Santo_Domingo: Georgetown
America/Sao_Paulo: Brasilia
America/Scoresbysund: Greenland
America/Shiprock: Mountain Time (US & Canada)
America/Sitka: Alaska
America/St_Barthelemy: Georgetown
America/St_Johns: Newfoundland
America/St_Kitts: Georgetown
America/St_Lucia: Georgetown
America/St_Thomas: Georgetown
America/St_Vincent: Georgetown
America/Swift_Current: Saskatchewan
America/Tegucigalpa: Central America
America/Thule: Atlantic Time (Canada)
America/Thunder_Bay: Eastern Time (US & Canada)
America/Tijuana: Tijuana
America/Toronto: Eastern Time (US & Canada)
America/Tortola: Georgetown
America/Vancouver: Pacific Time (US & Canada)
America/Virgin: Puerto Rico
America/Whitehorse: Arizona
America/Winnipeg: Central Time (US & Canada)
America/Yakutat: Alaska
America/Yellowknife: Mountain Time (US & Canada)
Antarctica/Casey: Perth
Antarctica/Davis: Bangkok
Antarctica/DumontDUrville: Guam
Antarctica/Macquarie: Sydney
Antarctica/Mawson: Karachi
Antarctica/McMurdo: Auckland
Antarctica/Palmer: Brasilia
Antarctica/Rothera: Brasilia
Antarctica/South_Pole: Wellington
Antarctica/Syowa: Nairobi
Antarctica/Troll: West Central Africa # no proper ActiveSupport::TimeZone mapping - shifts 2 hrs with southern DST
Antarctica/Vostok: Karachi
Arctic/Longyearbyen: Amsterdam
Asia/Aden: Kuwait
Asia/Almaty: Almaty
Asia/Amman: Istanbul
Asia/Anadyr: Kamchatka
Asia/Aqtau: Astana
Asia/Aqtobe: Astana
Asia/Ashgabat: Astana
Asia/Ashkhabad: Astana
Asia/Atyrau: Astana
Asia/Baghdad: Baghdad
Asia/Bahrain: Kuwait
Asia/Baku: Baku
Asia/Bangkok: Bangkok
Asia/Barnaul: Novosibirsk
Asia/Beirut: Cairo
Asia/Bishkek: Dhaka
Asia/Brunei: Kuala Lumpur
Asia/Calcutta: Kolkata
Asia/Chita: Yakutsk
Asia/Choibalsan: Ulaanbaatar
Asia/Chongqing: Chongqing
Asia/Chungking: Chongqing
Asia/Chungking: Chongqing
Asia/Colombo: Sri Jayawardenepura
Asia/Dacca: Dhaka
Asia/Damascus: Baghdad
Asia/Dhaka: Dhaka
Asia/Dili: Osaka
Asia/Dubai: Abu Dhabi
Asia/Dushanbe: Almaty
Asia/Famagusta: Jerusalem
Asia/Gaza: Jerusalem
Asia/Harbin: Chongqing
Asia/Harbin: Chongqing
Asia/Hebron: Jerusalem
Asia/Ho_Chi_Minh: Hanoi
Asia/Hong_Kong: Hong Kong
Asia/Hovd: Bangkok
Asia/Irkutsk: Irkutsk
Asia/Istanbul: Istanbul
Asia/Jakarta: Jakarta
Asia/Jayapura: Osaka
Asia/Jerusalem: Jerusalem
Asia/Kabul: Kabul
Asia/Kamchatka: Kamchatka
Asia/Karachi: Karachi
Asia/Kashgar: Urumqi
Asia/Kathmandu: Kathmandu
Asia/Katmandu: Kathmandu
Asia/Khandyga: Yakutsk
Asia/Kolkata: Kolkata
Asia/Krasnoyarsk: Krasnoyarsk
Asia/Kuala_Lumpur: Kuala Lumpur
Asia/Kuching: Kuala Lumpur
Asia/Kuwait: Kuwait
Asia/Macao: Chongqing
Asia/Macau: Beijing
Asia/Magadan: Magadan
Asia/Makassar: Kuala Lumpur
Asia/Manila: Kuala Lumpur
Asia/Muscat: Muscat
Asia/Nicosia: Athens
Asia/Novokuznetsk: Krasnoyarsk
Asia/Novosibirsk: Novosibirsk
Asia/Omsk: Urumqi
Asia/Oral: Astana
Asia/Phnom_Penh: Bangkok
Asia/Pontianak: Bangkok
Asia/Pyongyang: Seoul
Asia/Qatar: Kuwait
Asia/Qostanay: Astana
Asia/Qyzylorda: Astana
Asia/Rangoon: Rangoon
Asia/Riyadh: Riyadh
Asia/Saigon: Bangkok
Asia/Sakhalin: Magadan
Asia/Samarkand: Almaty
Asia/Seoul: Seoul
Asia/Shanghai: Beijing
Asia/Singapore: Singapore
Asia/Srednekolymsk: Srednekolymsk
Asia/Taipei: Taipei
Asia/Tashkent: Tashkent
Asia/Tbilisi: Tbilisi
Asia/Tehran: Tehran
Asia/Tel_Aviv: Jerusalem
Asia/Thimbu: Dhaka
Asia/Thimphu: Dhaka
Asia/Tokyo: Tokyo
Asia/Tomsk: Novosibirsk
Asia/Ujung_Pandang: Singapore
Asia/Ulaanbaatar: Ulaanbaatar
Asia/Ulan_Bator: Ulaanbaatar
Asia/Urumqi: Urumqi
Asia/Ust-Nera: Vladivostok
Asia/Vientiane: Bangkok
Asia/Vladivostok: Vladivostok
Asia/Yakutsk: Yakutsk
Asia/Yangon: Rangoon
Asia/Yekaterinburg: Ekaterinburg
Asia/Yerevan: Yerevan
Atlantic/Azores: Azores
Atlantic/Bermuda: Atlantic Time (Canada)
Atlantic/Canary: Lisbon
Atlantic/Cape_Verde: Cape Verde Is.
Atlantic/Faeroe: London
Atlantic/Faroe: Lisbon
Atlantic/Jan_Mayen: Berlin
Atlantic/Madeira: Lisbon
Atlantic/Reykjavik: Monrovia
Atlantic/South_Georgia: Mid-Atlantic
Atlantic/St_Helena: Monrovia
Atlantic/Stanley: Brasilia
Australia/ACT: Sydney
Australia/Adelaide: Adelaide
Australia/Brisbane: Brisbane
Australia/Broken_Hill: Adelaide
Australia/Canberra: Sydney
Australia/Currie: Hobart
Australia/Darwin: Darwin
Australia/Eucla: Perth # UTC +8:45; not in ActiveSupport::TimeZone
Australia/Hobart: Hobart
Australia/LHI: New Caledonia # shifts 30 mins with southern DST; not in ActiveSupport::TimeZone
Australia/Lindeman: Brisbane
Australia/Lord_Howe: New Caledonia # shifts 30 mins with southern DST; not in ActiveSupport::TimeZone
Australia/Melbourne: Melbourne
Australia/North: Darwin
Australia/NSW: Sydney
Australia/Perth: Perth
Australia/Queensland: Port Moresby
Australia/South: Adelaide
Australia/Sydney: Sydney
Australia/Tasmania: Sydney
Australia/Victoria: Sydney
Australia/West: Perth
Australia/Yancowinna: Adelaide
Brazil/Acre: Lima
Brazil/DeNoronha: Mid-Atlantic
Brazil/East: Brasilia
Brazil/West: La Paz
Canada/Atlantic: Atlantic Time (Canada)
Canada/Central: Central Time (US & Canada)
Canada/Eastern: Eastern Time (US & Canada)
Canada/Mountain: Mountain Time (US & Canada)
Canada/Newfoundland: Newfoundland
Canada/Pacific: Pacific Time (US & Canada)
Canada/Saskatchewan: Saskatchewan
Canada/Yukon: Arizona
CET: Berlin
Chile/Continental: Santiago
Chile/EasterIsland: Mexico City # no proper ActiveSupport::TimeZone mapping - s/b UTC-6 with southern DST
CST6CDT: Central Time (US & Canada)
Cuba: Eastern Time (US & Canada)
EET: Riga
Egypt: Cairo
Eire: Dublin
EST: Bogota
EST5EDT: Eastern Time (US & Canada)
Etc/GMT-0: UTC
Etc/GMT-1: West Central Africa
Etc/GMT-10: Guam
Etc/GMT-11: Solomon Is.
Etc/GMT-12: Marshall Is.
Etc/GMT-13: "Nuku'alofa"
Etc/GMT-14: "Nuku'alofa" # not in ActiveSupport::TimeZone
Etc/GMT-2: Harare
Etc/GMT-3: Nairobi
Etc/GMT-4: Abu Dhabi
Etc/GMT-5: Karachi
Etc/GMT-6: Dhaka
Etc/GMT-7: Bangkok
Etc/GMT-8: Kuala Lumpur
Etc/GMT-9: Osaka
Etc/GMT: UTC
Etc/GMT+0: UTC
Etc/GMT+1: Cape Verde Is.
Etc/GMT+10: Hawaii
Etc/GMT+11: Midway Island
Etc/GMT+12: International Date Line West
Etc/GMT+2: Mid-Atlantic
Etc/GMT+3: Brasilia
Etc/GMT+4: Georgetown
Etc/GMT+5: Bogota
Etc/GMT+6: Central America
Etc/GMT+7: Arizona
Etc/GMT+8: Alaska # no proper ActiveSupport::TimeZone mapping - s/b UTC-8 without DST
Etc/GMT+9: Alaska # no proper ActiveSupport::TimeZone mapping - s/b UTC-9 without DST
Etc/GMT0: UTC
Etc/Greenwich: UTC
Etc/UCT: UTC
Etc/Universal: UTC
Etc/UTC: UTC
Etc/Zulu: UTC
Europe/Amsterdam: Amsterdam
Europe/Andorra: Amsterdam
Europe/Astrakhan: Samara
Europe/Athens: Athens
Europe/Belfast: London
Europe/Belgrade: Belgrade
Europe/Berlin: Berlin
Europe/Bratislava: Bratislava
Europe/Brussels: Brussels
Europe/Bucharest: Bucharest
Europe/Budapest: Budapest
Europe/Busingen: Amsterdam
Europe/Chisinau: Athens
Europe/Copenhagen: Copenhagen
Europe/Dublin: Dublin
Europe/Gibraltar: Amsterdam
Europe/Guernsey: London
Europe/Helsinki: Helsinki
Europe/Isle_of_Man: London
Europe/Istanbul: Istanbul
Europe/Jersey: London
Europe/Kaliningrad: Kaliningrad
Europe/Kiev: Kyiv
Europe/Kirov: Moscow
Europe/Kyiv: Kyiv
Europe/Lisbon: Lisbon
Europe/Ljubljana: Ljubljana
Europe/London: London
Europe/Luxembourg: Amsterdam
Europe/Madrid: Madrid
Europe/Malta: Amsterdam
Europe/Mariehamn: Helsinki
Europe/Minsk: Minsk
Europe/Monaco: Amsterdam
Europe/Moscow: Moscow
Europe/Nicosia: Sofia
Europe/Oslo: Amsterdam
Europe/Paris: Paris
Europe/Podgorica: Belgrade
Europe/Prague: Prague
Europe/Riga: Riga
Europe/Rome: Rome
Europe/Samara: Samara
Europe/San_Marino: Amsterdam
Europe/Sarajevo: Sarajevo
Europe/Saratov: Samara
Europe/Simferopol: Moscow
Europe/Skopje: Skopje
Europe/Sofia: Sofia
Europe/Stockholm: Stockholm
Europe/Tallinn: Tallinn
Europe/Tirane: Belgrade
Europe/Tiraspol: Kyiv
Europe/Ulyanovsk: Samara
Europe/Uzhgorod: Helsinki
Europe/Vaduz: Amsterdam
Europe/Vatican: Amsterdam
Europe/Vienna: Vienna
Europe/Vilnius: Vilnius
Europe/Volgograd: Volgograd
Europe/Warsaw: Warsaw
Europe/Zagreb: Zagreb
Europe/Zaporozhye: Helsinki
Europe/Zurich: Amsterdam
GB-Eire: London
GB: London
GMT-0: UTC
GMT: UTC
GMT+0: UTC
GMT0: UTC
Greenwich: UTC
Hongkong: Singapore
HST: Hawaii
Iceland: UTC
Indian/Antananarivo: Nairobi
Indian/Chagos: Dhaka
Indian/Christmas: Bangkok
Indian/Cocos: Rangoon
Indian/Comoro: Nairobi
Indian/Kerguelen: Karachi
Indian/Mahe: Abu Dhabi
Indian/Maldives: Karachi
Indian/Mauritius: Abu Dhabi
Indian/Mayotte: Nairobi
Indian/Reunion: Abu Dhabi
Iran: Tehran
Israel: Jerusalem
Jamaica: Bogota
Japan: Tokyo
Kwajalein: Kamchatka
Libya: Pretoria
MET: Belgrade
Mexico/BajaNorte: Tijuana
Mexico/BajaSur: Mazatlan
Mexico/General: Mexico City
MST: Arizona
MST7MDT: Mountain Time (US & Canada)
Navajo: Mountain Time (US & Canada)
NZ-CHAT: Chatham Is.
NZ: Wellington
Pacific/Apia: Samoa
Pacific/Auckland: Auckland
Pacific/Bougainville: Solomon Is.
Pacific/Chatham: Chatham Is.
Pacific/Chuuk: Port Moresby
Pacific/Easter: Mexico City # no proper ActiveSupport::TimeZone mapping - s/b UTC-6 with southern DST
Pacific/Efate: Solomon Is.
Pacific/Enderbury: "Nuku'alofa"
Pacific/Fakaofo: Tokelau Is.
Pacific/Fiji: Fiji
Pacific/Funafuti: Marshall Is.
Pacific/Galapagos: Central America
Pacific/Gambier: Hawaii # no proper ActiveSupport::TimeZone mapping - s/b UTC-9 without DST
Pacific/Guadalcanal: Solomon Is.
Pacific/Guam: Guam
Pacific/Honolulu: Hawaii
Pacific/Johnston: Hawaii
Pacific/Kanton: Nuku'alofa
Pacific/Kiritimati: Chatham Is. # no proper ActiveSupport::TimeZone mapping - s/b UTC+14
Pacific/Kosrae: Solomon Is.
Pacific/Kwajalein: Marshall Is.
Pacific/Majuro: Marshall Is.
Pacific/Marquesas: Hawaii # no proper ActiveSupport::TimeZone mapping - s/b UTC-9.5
Pacific/Midway: Midway Island
Pacific/Nauru: Marshall Is.
Pacific/Niue: Midway Island
Pacific/Norfolk: New Caledonia # no proper ActiveSupport::TimeZone mapping - s/b UTC+12 with southern DST
Pacific/Noumea: New Caledonia
Pacific/Pago_Pago: American Samoa
Pacific/Palau: Osaka
Pacific/Pitcairn: Alaska # no proper ActiveSupport::TimeZone mapping - observes southern DST
Pacific/Pohnpei: New Caledonia
Pacific/Ponape: Solomon Is.
Pacific/Port_Moresby: Port Moresby
Pacific/Rarotonga: Hawaii
Pacific/Saipan: Guam
Pacific/Samoa: American Samoa
Pacific/Tahiti: Hawaii
Pacific/Tarawa: Marshall Is.
Pacific/Tongatapu: "Nuku'alofa"
Pacific/Truk: Guam
Pacific/Wake: Marshall Is.
Pacific/Wallis: Marshall Is.
Pacific/Yap: Port Moresby
Poland: Belgrade
Portugal: Lisbon
PRC: Chongqing
PST8PDT: Pacific Time (US & Canada)
ROC: Singapore
ROK: Seoul
Singapore: Singapore
Turkey: Istanbul
UCT: UTC
Universal: UTC
US/Alaska: Alaska
US/Aleutian: Hawaii # no proper ActiveSupport::TimeZone mapping - Hawaii offset but observes DST
US/Arizona: Arizona
US/Central: Central Time (US & Canada)
US/East-Indiana: Indiana (East)
US/Eastern: Eastern Time (US & Canada)
US/Hawaii: Hawaii
US/Indiana-Starke: Central Time (US & Canada)
US/Michigan: Eastern Time (US & Canada)
US/Mountain: Mountain Time (US & Canada)
US/Pacific: Pacific Time (US & Canada)
US/Samoa: American Samoa
UTC: UTC
W-SU: Moscow
WET: London
Zulu: UTC
@ngobin
Copy link
Author

ngobin commented Dec 11, 2024

This YAML file was created to capture mappings between IANA time zone names and the time zone names provided by Ruby on Rails' ActiveSupport::TimeZone.

It is not intended to capture the base mappings that are provided in ActiveSupport itself.

No guarantees are made as to the accuracy of this list. I ran basic checks to ensure the offset and observance of Daylight Savings Time was consistent between the IANA zone and the Rails zone it maps to. Because Rails includes a smaller subset of timezones, there are some IANA time zones that cannot be accurately mapped to a Rails time zone at all - I've mapped these to a "nearest approximation" and included a comment - this affects 15 fairly small IANA timezones. I did not check to ensure the dates of DST changes are consistent between the IANA and Rails time zones.

Credit to two older gists (1, 2) that I used as starting points.

Corrections and feedback welcomed.

@ngobin
Copy link
Author

ngobin commented Dec 11, 2024

People may also wish to reference a very similar YAML that I found after creating this, which is maintained by Shopify in their Worldwide gem.

I think this list has a couple minor improvements over the shopify list, but they are so small that most will never notice, and Shopify's library is likely to be better maintained over time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment