Prefer underscores in timezone names, but accept spaces.

This commit is contained in:
David Hull 2014-01-09 16:46:15 -08:00
parent 4ad81b03fd
commit 6d4985d5f2
2 changed files with 81 additions and 50 deletions

View file

@ -37,7 +37,7 @@
[
{"Africa/Abidjan",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Accra",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Addis Ababa",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Addis_Ababa",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Algiers",{"CET","CET"},undef,60,0,undef,{0,0},undef,{0,0}},
{"Africa/Asmera",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Bamako",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
@ -52,10 +52,10 @@
{"Africa/Ceuta",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Africa/Conakry",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Dakar",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Dar es Salaam",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Dar_es_Salaam",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Djibouti",{"EAT","EAT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Africa/Douala",{"WAT","WAT"},undef,60,0,undef,{0,0},undef,{0,0}},
{"Africa/El Aaiun",{"WET","WET"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/El_Aaiun",{"WET","WET"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Freetown",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Gaborone",{"CAT","CAT"},undef,120,0,undef,{0,0},undef,{0,0}},
{"Africa/Harare",{"CAT","CAT"},undef,120,0,undef,{0,0},undef,{0,0}},
@ -82,7 +82,7 @@
{"Africa/Nouakchott",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Ouagadougou",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Porto-Novo",{"WAT","WAT"},undef,60,0,undef,{0,0},undef,{0,0}},
{"Africa/Sao Tome",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Sao_Tome",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Timbuktu",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Africa/Tripoli",{"EET","EET"},undef,120,0,undef,{0,0},undef,{0,0}},
{"Africa/Tunis",{"CET","CET"},undef,60,0,undef,{0,0},undef,{0,0}},
@ -97,11 +97,11 @@
{"America/Barbados",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Belem",{"BRT","BRT"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Belize",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Boa Vista",{"AMT","AMT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Boa_Vista",{"AMT","AMT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Bogota",{"COT","COT"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Boise",{"MST","MST"},{"MDT","MDT"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Buenos Aires",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Cambridge Bay",{"MST","MST"},{"MDT","MDT"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Buenos_Aires",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Cambridge_Bay",{"MST","MST"},{"MDT","MDT"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Cancun",{"CST","CST"},{"CDT","CDT"},-360,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Caracas",{"VET","VET"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Catamarca",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
@ -110,23 +110,23 @@
{"America/Chicago",{"CST","Central Standard Time"},{"CDT","Central Daylight Time"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Chihuahua",{"MST","MST"},{"MDT","MDT"},-420,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Cordoba",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Costa Rica",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Costa_Rica",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Cuiaba",{"AMT","AMT"},{"AMST","AMST"},-240,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Curacao",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Danmarkshavn",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"America/Dawson",{"PST","PST"},{"PDT","PDT"},-480,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Dawson Creek",{"MST","MST"},undef,-420,0,undef,{0,0},undef,{0,0}},
{"America/Dawson_Creek",{"MST","MST"},undef,-420,0,undef,{0,0},undef,{0,0}},
{"America/Denver",{"MST","Mountain Standard Time"},{"MDT","Mountain Daylight Time"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Detroit",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Dominica",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Edmonton",{"MST","MST"},{"MDT","MDT"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Eirunepe",{"ACT","ACT"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/El Salvador",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/El_Salvador",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Fortaleza",{"BRT","BRT"},{"BRST","BRST"},-180,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Glace Bay",{"AST","AST"},{"ADT","ADT"},-240,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Glace_Bay",{"AST","AST"},{"ADT","ADT"},-240,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Godthab",{"WGT","WGT"},{"WGST","WGST"},-180,60,{last,sat,mar},{22,0},{last,sat,oct},{23,0}},
{"America/Goose Bay",{"AST","AST"},{"ADT","ADT"},-240,60,{1,sun,apr},{0,1},{last,sun,oct},{0,1}},
{"America/Grand Turk",{"EST","EST"},{"EDT","EDT"},-300,60,{1,sun,apr},{0,0},{last,sun,oct},{0,0}},
{"America/Goose_Bay",{"AST","AST"},{"ADT","ADT"},-240,60,{1,sun,apr},{0,1},{last,sun,oct},{0,1}},
{"America/Grand_Turk",{"EST","EST"},{"EDT","EDT"},-300,60,{1,sun,apr},{0,0},{last,sun,oct},{0,0}},
{"America/Grenada",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Guadeloupe",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Guatemala",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
@ -147,9 +147,9 @@
{"America/Juneau",{"AKST","AKST"},{"AKDT","AKDT"},-540,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Kentucky/Louisville",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Kentucky/Monticello",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/La Paz",{"BOT","BOT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/La_Paz",{"BOT","BOT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Lima",{"PET","PET"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Los Angeles",{"PST","Pacific Standard Time"},{"PDT","Pacific Daylight Time"},-480,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Los_Angeles",{"PST","Pacific Standard Time"},{"PDT","Pacific Daylight Time"},-480,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Louisville",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Maceio",{"BRT","BRT"},{"BRST","BRST"},-180,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Managua",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
@ -159,46 +159,46 @@
{"America/Mendoza",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Menominee",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Merida",{"CST","CST"},{"CDT","CDT"},-360,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Mexico City",{"CST","CST"},{"CDT","CDT"},-360,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Mexico_City",{"CST","CST"},{"CDT","CDT"},-360,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Miquelon",{"PMST","PMST"},{"PMDT","PMDT"},-180,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Monterrey",{"CST","CST"},{"CDT","CDT"},-360,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Montevideo",{"UYT","UYT"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Montreal",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Montserrat",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Nassau",{"EST","EST"},{"EDT","EDT"},-300,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/New York",{"EST","Eastern Standard Time"},{"EDT","Eastern Daylight Time"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/New_York",{"EST","Eastern Standard Time"},{"EDT","Eastern Daylight Time"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Nipigon",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Nome",{"AKST","AKST"},{"AKDT","AKDT"},-540,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Noronha",{"FNT","FNT"},undef,-120,0,undef,{0,0},undef,{0,0}},
{"America/North Dakota/Center",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/North_Dakota/Center",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Panama",{"EST","EST"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Pangnirtung",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Paramaribo",{"SRT","SRT"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Phoenix",{"MST","Mountain Standard Time"},undef,-420,0,undef,{0,0},undef,{0,0}},
{"America/Port-au-Prince",{"EST","EST"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Port of Spain",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Porto Velho",{"AMT","AMT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Puerto Rico",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Rainy River",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Rankin Inlet",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Port_of_Spain",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Porto_Velho",{"AMT","AMT"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Puerto_Rico",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Rainy_River",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Rankin_Inlet",{"CST","CST"},{"CDT","CDT"},-360,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Recife",{"BRT","BRT"},{"BRST","BRST"},-180,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Regina",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Rio Branco",{"ACT","ACT"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Rio_Branco",{"ACT","ACT"},undef,-300,0,undef,{0,0},undef,{0,0}},
{"America/Rosario",{"ART","ART"},undef,-180,0,undef,{0,0},undef,{0,0}},
{"America/Santiago",{"CLT","CLT"},{"CLST","CLST"},-240,60,{2,sun,oct},{0,0},{2,sun,mar},{0,0}},
{"America/Santo Domingo",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Sao Paulo",{"BRT","BRT"},{"BRST","BRST"},-180,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Santo_Domingo",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Sao_Paulo",{"BRT","BRT"},{"BRST","BRST"},-180,60,{2,sun,oct},{0,0},{3,sun,feb},{0,0}},
{"America/Scoresbysund",{"EGT","EGT"},{"EGST","EGST"},-60,60,{last,sun,mar},{0,0},{last,sun,oct},{1,0}},
{"America/Shiprock",{"MST","MST"},{"MDT","MDT"},-420,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/St Johns",{"NST","NST"},{"NDT","NDT"},-210,60,{1,sun,apr},{0,1},{last,sun,oct},{0,1}},
{"America/St Kitts",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St Lucia",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St Thomas",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St Vincent",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Swift Current",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/St_Johns",{"NST","NST"},{"NDT","NDT"},-210,60,{1,sun,apr},{0,1},{last,sun,oct},{0,1}},
{"America/St_Kitts",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St_Lucia",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St_Thomas",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/St_Vincent",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Swift_Current",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Tegucigalpa",{"CST","CST"},undef,-360,0,undef,{0,0},undef,{0,0}},
{"America/Thule",{"AST","AST"},undef,-240,0,{2,sun,mar},{0,0},{1,sun,nov},{0,0}},
{"America/Thunder Bay",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Thunder_Bay",{"EST","EST"},{"EDT","EDT"},-300,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
{"America/Tijuana",{"PST","PST"},{"PDT","PDT"},-480,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"America/Tortola",{"AST","AST"},undef,-240,0,undef,{0,0},undef,{0,0}},
{"America/Vancouver",{"PST","PST"},{"PDT","PDT"},-480,60,{2,sun,mar},{2,0},{1,sun,nov},{2,0}},
@ -212,7 +212,7 @@
{"Antarctica/Mawson",{"MAWT","MAWT"},undef,360,0,undef,{0,0},undef,{0,0}},
{"Antarctica/McMurdo",{"NZST","NZST"},{"NZDT","NZDT"},720,60,{1,sun,oct},{2,0},{3,sun,mar},{3,0}},
{"Antarctica/Palmer",{"CLT","CLT"},{"CLST","CLST"},-240,60,{2,sun,oct},{0,0},{2,sun,mar},{0,0}},
{"Antarctica/South Pole",{"NZST","NZST"},{"NZDT","NZDT"},720,60,{1,sun,oct},{2,0},{3,sun,mar},{3,0}},
{"Antarctica/South_Pole",{"NZST","NZST"},{"NZDT","NZDT"},720,60,{1,sun,oct},{2,0},{3,sun,mar},{3,0}},
{"Antarctica/Syowa",{"SYOT","SYOT"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Antarctica/Vostok",{"VOST","VOST"},undef,360,0,undef,{0,0},undef,{0,0}},
{"Arctic/Longyearbyen",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
@ -241,7 +241,7 @@
{"Asia/Dushanbe",{"TJT","TJT"},undef,300,0,undef,{0,0},undef,{0,0}},
{"Asia/Gaza",{"EET","EET"},{"EEST","EEST"},120,60,{3,fri,apr},{0,0},{3,fri,oct},{0,0}},
{"Asia/Harbin",{"CST","CST"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Hong Kong",{"HKT","HKT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Hong_Kong",{"HKT","HKT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Hovd",{"HOVT","HOVT"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Irkutsk",{"IRKT","IRKT"},undef,540,0,undef,{0,0},undef,{0,0}},
{"Asia/Istanbul",{"EET","EET"},{"EEST","EEST"},120,60,{last,sun,mar},{3,0},{last,sun,oct},{4,0}},
@ -254,7 +254,7 @@
{"Asia/Kashgar",{"CST","CST"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Katmandu",{"NPT","NPT"},undef,345,0,undef,{0,0},undef,{0,0}},
{"Asia/Krasnoyarsk",{"KRAT","KRAT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Kuala Lumpur",{"MYT","MYT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Kuala_Lumpur",{"MYT","MYT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Kuching",{"MYT","MYT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Kuwait",{"AST","AST"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Asia/Macao",{"CST","CST"},undef,480,0,undef,{0,0},undef,{0,0}},
@ -267,11 +267,11 @@
{"Asia/Novosibirsk",{"NOVT","NOVT"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Omsk",{"OMST","OMST"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Oral",{"WST","WST"},undef,300,0,undef,{0,0},undef,{0,0}},
{"Asia/Phnom Penh",{"ICT","ICT"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Phnom_Penh",{"ICT","ICT"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Pontianak",{"WIT","WIT"},undef,420,0,undef,{0,0},undef,{0,0}},
{"Asia/Pyongyang",{"KST","KST"},undef,540,0,undef,{0,0},undef,{0,0}},
{"Asia/Qyzylorda",{"KST","KST"},undef,360,0,undef,{0,0},undef,{0,0}},
{"Asia/Qatar",{"AST","AST"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Asia/Qyzylorda",{"KST","KST"},undef,360,0,undef,{0,0},undef,{0,0}},
{"Asia/Rangoon",{"MMT","MMT"},undef,390,0,undef,{0,0},undef,{0,0}},
{"Asia/Riyadh",{"AST","AST"},undef,180,0,undef,{0,0},undef,{0,0}},
{"Asia/Saigon",{"ICT","ICT"},undef,420,0,undef,{0,0},undef,{0,0}},
@ -286,7 +286,7 @@
{"Asia/Tehran",{"IRT","IRT"},undef,210,0,undef,{0,0},undef,{0,0}},
{"Asia/Thimphu",{"BTT","BTT"},undef,360,0,undef,{0,0},undef,{0,0}},
{"Asia/Tokyo",{"JST","JST"},undef,540,0,undef,{0,0},undef,{0,0}},
{"Asia/Ujung Pandang",{"CIT","CIT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Ujung_Pandang",{"CIT","CIT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Ulaanbaatar",{"ULAT","ULAT"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Urumqi",{"CST","CST"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Asia/Vientiane",{"ICT","ICT"},undef,420,0,undef,{0,0},undef,{0,0}},
@ -297,21 +297,21 @@
{"Atlantic/Azores",{"AZOT","AZOT"},{"AZOST","AZOST"},-60,60,{last,sun,mar},{0,0},{last,sun,oct},{1,0}},
{"Atlantic/Bermuda",{"AST","AST"},{"ADT","ADT"},-240,60,{1,sun,apr},{2,0},{last,sun,oct},{2,0}},
{"Atlantic/Canary",{"WET","WET"},{"WEST","WEST"},0,60,{last,sun,mar},{1,0},{last,sun,oct},{2,0}},
{"Atlantic/Cape Verde",{"CVT","CVT"},undef,-60,0,undef,{0,0},undef,{0,0}},
{"Atlantic/Cape_Verde",{"CVT","CVT"},undef,-60,0,undef,{0,0},undef,{0,0}},
{"Atlantic/Faeroe",{"WET","WET"},{"WEST","WEST"},0,60,{last,sun,mar},{1,0},{last,sun,oct},{2,0}},
{"Atlantic/Jan Mayen",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Atlantic/Jan_Mayen",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Atlantic/Madeira",{"WET","WET"},{"WEST","WEST"},0,60,{last,sun,mar},{1,0},{last,sun,oct},{2,0}},
{"Atlantic/Reykjavik",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Atlantic/South Georgia",{"GST","GST"},undef,-120,0,undef,{0,0},undef,{0,0}},
{"Atlantic/St Helena",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Atlantic/South_Georgia",{"GST","GST"},undef,-120,0,undef,{0,0},undef,{0,0}},
{"Atlantic/St_Helena",{"GMT","GMT"},undef,0,0,undef,{0,0},undef,{0,0}},
{"Atlantic/Stanley",{"FKT","FKT"},{"FKST","FKST"},-240,60,{1,sun,sep},{2,0},{3,sun,apr},{2,0}},
{"Australia/Adelaide",{"CST","CST"},{"CST","CST"},570,60,{last,sun,oct},{2,0},{last,sun,mar},{3,0}},
{"Australia/Brisbane",{"EST","EST"},undef,600,0,undef,{0,0},undef,{0,0}},
{"Australia/Broken Hill",{"CST","CST"},{"CST","CST"},570,60,{last,sun,oct},{2,0},{last,sun,mar},{3,0}},
{"Australia/Broken_Hill",{"CST","CST"},{"CST","CST"},570,60,{last,sun,oct},{2,0},{last,sun,mar},{3,0}},
{"Australia/Darwin",{"CST","CST"},undef,570,0,undef,{0,0},undef,{0,0}},
{"Australia/Hobart",{"EST","EST"},{"EST","EST"},600,60,{1,sun,oct},{2,0},{last,sun,mar},{3,0}},
{"Australia/Lindeman",{"EST","EST"},undef,600,0,undef,{0,0},undef,{0,0}},
{"Australia/Lord Howe",{"LHST","LHST"},{"LHST","LHST"},630,30,{last,sun,oct},{2,0},{last,sun,mar},{2,0}},
{"Australia/Lord_Howe",{"LHST","LHST"},{"LHST","LHST"},630,30,{last,sun,oct},{2,0},{last,sun,mar},{2,0}},
{"Australia/Melbourne",{"EST","EST"},{"EST","EST"},600,60,{last,sun,oct},{2,0},{last,sun,mar},{3,0}},
{"Australia/Perth",{"WST","WST"},undef,480,0,undef,{0,0},undef,{0,0}},
{"Australia/Sydney",{"EST","EST"},{"EST","EST"},600,60,{last,sun,oct},{2,0},{last,sun,mar},{3,0}},
@ -349,7 +349,7 @@
{"Europe/Riga",{"EET","EET"},{"EEST","EEST"},120,60,{last,sun,mar},{3,0},{last,sun,oct},{4,0}},
{"Europe/Rome",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Europe/Samara",{"SAMT","SAMT"},undef,300,0,undef,{0,0},undef,{0,0}},
{"Europe/San Marino",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Europe/San_Marino",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Europe/Sarajevo",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
{"Europe/Simferopol",{"EET","EET"},{"EEST","EEST"},120,60,{last,sun,mar},{3,0},{last,sun,oct},{4,0}},
{"Europe/Skopje",{"CET","CET"},{"CEST","CEST"},60,60,{last,sun,mar},{2,0},{last,sun,oct},{3,0}},
@ -402,11 +402,11 @@
{"Pacific/Niue",{"NUT","NUT"},undef,-660,0,undef,{0,0},undef,{0,0}},
{"Pacific/Norfolk",{"NFT","NFT"},undef,690,0,undef,{0,0},undef,{0,0}},
{"Pacific/Noumea",{"NCT","NCT"},undef,660,0,undef,{0,0},undef,{0,0}},
{"Pacific/Pago Pago",{"SST","SST"},undef,-660,0,undef,{0,0},undef,{0,0}},
{"Pacific/Pago_Pago",{"SST","SST"},undef,-660,0,undef,{0,0},undef,{0,0}},
{"Pacific/Palau",{"PWT","PWT"},undef,540,0,undef,{0,0},undef,{0,0}},
{"Pacific/Pitcairn",{"PST","PST"},undef,-480,0,undef,{0,0},undef,{0,0}},
{"Pacific/Ponape",{"PONT","PONT"},undef,660,0,undef,{0,0},undef,{0,0}},
{"Pacific/Port Moresby",{"PGT","PGT"},undef,600,0,undef,{0,0},undef,{0,0}},
{"Pacific/Port_Moresby",{"PGT","PGT"},undef,600,0,undef,{0,0},undef,{0,0}},
{"Pacific/Rarotonga",{"CKT","CKT"},undef,-600,0,undef,{0,0},undef,{0,0}},
{"Pacific/Saipan",{"ChST","ChST"},undef,600,0,undef,{0,0},undef,{0,0}},
{"Pacific/Tahiti",{"TAHT","TAHT"},undef,-600,0,undef,{0,0},undef,{0,0}},

View file

@ -220,10 +220,41 @@ fmt_shift({'-', H, M}) ->
fmt_shift(Any) ->
throw(Any).
tr_char(String, From, To) ->
case string:chr(String, From) of
0 -> String; % Optimize for String does not contain From.
_ -> tr_char(String, From, To, [])
end.
tr_char([], _From, _To, Acc) ->
lists:reverse(Acc);
tr_char([H|T], From, To, Acc) ->
case H of
From -> tr_char(T, From, To, [To|Acc]);
_ -> tr_char(T, From, To, [H|Acc])
end.
-define(SPACE_CHAR, 32).
get_timezone(TimeZone) ->
case dict:find(TimeZone, ?tz_index) of
TimeZoneNoSpaces = tr_char(TimeZone, ?SPACE_CHAR, $_),
case dict:find(TimeZoneNoSpaces, ?tz_index) of
error ->
TimeZone;
TimeZoneNoSpaces;
{ok, [TZName | _]} ->
TZName
end.
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
tr_char_test() ->
?assertEqual("ABCDE", tr_char("ABCDE", ?SPACE_CHAR, $_)),
?assertEqual("AB_DE", tr_char("AB DE", ?SPACE_CHAR, $_)),
?assertEqual("A_C_E", tr_char("A C E", ?SPACE_CHAR, $_)).
get_timezone_test() ->
?assertEqual("America/Los_Angeles", get_timezone("America/Los Angeles")).
tz_shift_test() ->
?assertEqual({'+',3,0}, tz_shift({{2014,1,1},{12,0,0}}, "America/Los_Angeles", "America/New_York")).
-endif. % TEST