// tz_variants.mbt — Tz 枚举与解析(自动生成,勿手改)
// 移植自仓颉 src/base/tz/tz_variants.cj
///|
/// IANA 时区枚举,597 个 variant,每个对应一个 IANA 时区 ID。
pub(all) enum Tz {
Africa__Abidjan
Africa__Accra
Africa__Addis_Ababa
Africa__Algiers
Africa__Asmara
Africa__Asmera
Africa__Bamako
Africa__Bangui
Africa__Banjul
Africa__Bissau
Africa__Blantyre
Africa__Brazzaville
Africa__Bujumbura
Africa__Cairo
Africa__Casablanca
Africa__Ceuta
Africa__Conakry
Africa__Dakar
Africa__Dar_es_Salaam
Africa__Djibouti
Africa__Douala
Africa__El_Aaiun
Africa__Freetown
Africa__Gaborone
Africa__Harare
Africa__Johannesburg
Africa__Juba
Africa__Kampala
Africa__Khartoum
Africa__Kigali
Africa__Kinshasa
Africa__Lagos
Africa__Libreville
Africa__Lome
Africa__Luanda
Africa__Lubumbashi
Africa__Lusaka
Africa__Malabo
Africa__Maputo
Africa__Maseru
Africa__Mbabane
Africa__Mogadishu
Africa__Monrovia
Africa__Nairobi
Africa__Ndjamena
Africa__Niamey
Africa__Nouakchott
Africa__Ouagadougou
Africa__PortoNovo
Africa__Sao_Tome
Africa__Timbuktu
Africa__Tripoli
Africa__Tunis
Africa__Windhoek
America__Adak
America__Anchorage
America__Anguilla
America__Antigua
America__Araguaina
America__Argentina__Buenos_Aires
America__Argentina__Catamarca
America__Argentina__ComodRivadavia
America__Argentina__Cordoba
America__Argentina__Jujuy
America__Argentina__La_Rioja
America__Argentina__Mendoza
America__Argentina__Rio_Gallegos
America__Argentina__Salta
America__Argentina__San_Juan
America__Argentina__San_Luis
America__Argentina__Tucuman
America__Argentina__Ushuaia
America__Aruba
America__Asuncion
America__Atikokan
America__Atka
America__Bahia
America__Bahia_Banderas
America__Barbados
America__Belem
America__Belize
America__BlancSablon
America__Boa_Vista
America__Bogota
America__Boise
America__Buenos_Aires
America__Cambridge_Bay
America__Campo_Grande
America__Cancun
America__Caracas
America__Catamarca
America__Cayenne
America__Cayman
America__Chicago
America__Chihuahua
America__Ciudad_Juarez
America__Coral_Harbour
America__Cordoba
America__Costa_Rica
America__Coyhaique
America__Creston
America__Cuiaba
America__Curacao
America__Danmarkshavn
America__Dawson
America__Dawson_Creek
America__Denver
America__Detroit
America__Dominica
America__Edmonton
America__Eirunepe
America__El_Salvador
America__Ensenada
America__Fort_Nelson
America__Fort_Wayne
America__Fortaleza
America__Glace_Bay
America__Godthab
America__Goose_Bay
America__Grand_Turk
America__Grenada
America__Guadeloupe
America__Guatemala
America__Guayaquil
America__Guyana
America__Halifax
America__Havana
America__Hermosillo
America__Indiana__Indianapolis
America__Indiana__Knox
America__Indiana__Marengo
America__Indiana__Petersburg
America__Indiana__Tell_City
America__Indiana__Vevay
America__Indiana__Vincennes
America__Indiana__Winamac
America__Indianapolis
America__Inuvik
America__Iqaluit
America__Jamaica
America__Jujuy
America__Juneau
America__Kentucky__Louisville
America__Kentucky__Monticello
America__Knox_IN
America__Kralendijk
America__La_Paz
America__Lima
America__Los_Angeles
America__Louisville
America__Lower_Princes
America__Maceio
America__Managua
America__Manaus
America__Marigot
America__Martinique
America__Matamoros
America__Mazatlan
America__Mendoza
America__Menominee
America__Merida
America__Metlakatla
America__Mexico_City
America__Miquelon
America__Moncton
America__Monterrey
America__Montevideo
America__Montreal
America__Montserrat
America__Nassau
America__New_York
America__Nipigon
America__Nome
America__Noronha
America__North_Dakota__Beulah
America__North_Dakota__Center
America__North_Dakota__New_Salem
America__Nuuk
America__Ojinaga
America__Panama
America__Pangnirtung
America__Paramaribo
America__Phoenix
America__PortauPrince
America__Port_of_Spain
America__Porto_Acre
America__Porto_Velho
America__Puerto_Rico
America__Punta_Arenas
America__Rainy_River
America__Rankin_Inlet
America__Recife
America__Regina
America__Resolute
America__Rio_Branco
America__Rosario
America__Santa_Isabel
America__Santarem
America__Santiago
America__Santo_Domingo
America__Sao_Paulo
America__Scoresbysund
America__Shiprock
America__Sitka
America__St_Barthelemy
America__St_Johns
America__St_Kitts
America__St_Lucia
America__St_Thomas
America__St_Vincent
America__Swift_Current
America__Tegucigalpa
America__Thule
America__Thunder_Bay
America__Tijuana
America__Toronto
America__Tortola
America__Vancouver
America__Virgin
America__Whitehorse
America__Winnipeg
America__Yakutat
America__Yellowknife
Antarctica__Casey
Antarctica__Davis
Antarctica__DumontDUrville
Antarctica__Macquarie
Antarctica__Mawson
Antarctica__McMurdo
Antarctica__Palmer
Antarctica__Rothera
Antarctica__South_Pole
Antarctica__Syowa
Antarctica__Troll
Antarctica__Vostok
Arctic__Longyearbyen
Asia__Aden
Asia__Almaty
Asia__Amman
Asia__Anadyr
Asia__Aqtau
Asia__Aqtobe
Asia__Ashgabat
Asia__Ashkhabad
Asia__Atyrau
Asia__Baghdad
Asia__Bahrain
Asia__Baku
Asia__Bangkok
Asia__Barnaul
Asia__Beirut
Asia__Bishkek
Asia__Brunei
Asia__Calcutta
Asia__Chita
Asia__Choibalsan
Asia__Chongqing
Asia__Chungking
Asia__Colombo
Asia__Dacca
Asia__Damascus
Asia__Dhaka
Asia__Dili
Asia__Dubai
Asia__Dushanbe
Asia__Famagusta
Asia__Gaza
Asia__Harbin
Asia__Hebron
Asia__Ho_Chi_Minh
Asia__Hong_Kong
Asia__Hovd
Asia__Irkutsk
Asia__Istanbul
Asia__Jakarta
Asia__Jayapura
Asia__Jerusalem
Asia__Kabul
Asia__Kamchatka
Asia__Karachi
Asia__Kashgar
Asia__Kathmandu
Asia__Katmandu
Asia__Khandyga
Asia__Kolkata
Asia__Krasnoyarsk
Asia__Kuala_Lumpur
Asia__Kuching
Asia__Kuwait
Asia__Macao
Asia__Macau
Asia__Magadan
Asia__Makassar
Asia__Manila
Asia__Muscat
Asia__Nicosia
Asia__Novokuznetsk
Asia__Novosibirsk
Asia__Omsk
Asia__Oral
Asia__Phnom_Penh
Asia__Pontianak
Asia__Pyongyang
Asia__Qatar
Asia__Qostanay
Asia__Qyzylorda
Asia__Rangoon
Asia__Riyadh
Asia__Saigon
Asia__Sakhalin
Asia__Samarkand
Asia__Seoul
Asia__Shanghai
Asia__Singapore
Asia__Srednekolymsk
Asia__Taipei
Asia__Tashkent
Asia__Tbilisi
Asia__Tehran
Asia__Tel_Aviv
Asia__Thimbu
Asia__Thimphu
Asia__Tokyo
Asia__Tomsk
Asia__Ujung_Pandang
Asia__Ulaanbaatar
Asia__Ulan_Bator
Asia__Urumqi
Asia__UstNera
Asia__Vientiane
Asia__Vladivostok
Asia__Yakutsk
Asia__Yangon
Asia__Yekaterinburg
Asia__Yerevan
Atlantic__Azores
Atlantic__Bermuda
Atlantic__Canary
Atlantic__Cape_Verde
Atlantic__Faeroe
Atlantic__Faroe
Atlantic__Jan_Mayen
Atlantic__Madeira
Atlantic__Reykjavik
Atlantic__South_Georgia
Atlantic__St_Helena
Atlantic__Stanley
Australia__ACT
Australia__Adelaide
Australia__Brisbane
Australia__Broken_Hill
Australia__Canberra
Australia__Currie
Australia__Darwin
Australia__Eucla
Australia__Hobart
Australia__LHI
Australia__Lindeman
Australia__Lord_Howe
Australia__Melbourne
Australia__NSW
Australia__North
Australia__Perth
Australia__Queensland
Australia__South
Australia__Sydney
Australia__Tasmania
Australia__Victoria
Australia__West
Australia__Yancowinna
Brazil__Acre
Brazil__DeNoronha
Brazil__East
Brazil__West
CET
CST6CDT
Canada__Atlantic
Canada__Central
Canada__Eastern
Canada__Mountain
Canada__Newfoundland
Canada__Pacific
Canada__Saskatchewan
Canada__Yukon
Chile__Continental
Chile__EasterIsland
Cuba
EET
EST
EST5EDT
Egypt
Eire
Etc__GMT
Etc__GMTPlus0
Etc__GMTPlus1
Etc__GMTPlus10
Etc__GMTPlus11
Etc__GMTPlus12
Etc__GMTPlus2
Etc__GMTPlus3
Etc__GMTPlus4
Etc__GMTPlus5
Etc__GMTPlus6
Etc__GMTPlus7
Etc__GMTPlus8
Etc__GMTPlus9
Etc__GMTMinus0
Etc__GMTMinus1
Etc__GMTMinus10
Etc__GMTMinus11
Etc__GMTMinus12
Etc__GMTMinus13
Etc__GMTMinus14
Etc__GMTMinus2
Etc__GMTMinus3
Etc__GMTMinus4
Etc__GMTMinus5
Etc__GMTMinus6
Etc__GMTMinus7
Etc__GMTMinus8
Etc__GMTMinus9
Etc__GMT0
Etc__Greenwich
Etc__UCT
Etc__UTC
Etc__Universal
Etc__Zulu
Europe__Amsterdam
Europe__Andorra
Europe__Astrakhan
Europe__Athens
Europe__Belfast
Europe__Belgrade
Europe__Berlin
Europe__Bratislava
Europe__Brussels
Europe__Bucharest
Europe__Budapest
Europe__Busingen
Europe__Chisinau
Europe__Copenhagen
Europe__Dublin
Europe__Gibraltar
Europe__Guernsey
Europe__Helsinki
Europe__Isle_of_Man
Europe__Istanbul
Europe__Jersey
Europe__Kaliningrad
Europe__Kiev
Europe__Kirov
Europe__Kyiv
Europe__Lisbon
Europe__Ljubljana
Europe__London
Europe__Luxembourg
Europe__Madrid
Europe__Malta
Europe__Mariehamn
Europe__Minsk
Europe__Monaco
Europe__Moscow
Europe__Nicosia
Europe__Oslo
Europe__Paris
Europe__Podgorica
Europe__Prague
Europe__Riga
Europe__Rome
Europe__Samara
Europe__San_Marino
Europe__Sarajevo
Europe__Saratov
Europe__Simferopol
Europe__Skopje
Europe__Sofia
Europe__Stockholm
Europe__Tallinn
Europe__Tirane
Europe__Tiraspol
Europe__Ulyanovsk
Europe__Uzhgorod
Europe__Vaduz
Europe__Vatican
Europe__Vienna
Europe__Vilnius
Europe__Volgograd
Europe__Warsaw
Europe__Zagreb
Europe__Zaporozhye
Europe__Zurich
GB
GBEire
GMT
GMTPlus0
GMTMinus0
GMT0
Greenwich
HST
Hongkong
Iceland
Indian__Antananarivo
Indian__Chagos
Indian__Christmas
Indian__Cocos
Indian__Comoro
Indian__Kerguelen
Indian__Mahe
Indian__Maldives
Indian__Mauritius
Indian__Mayotte
Indian__Reunion
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST
MST7MDT
Mexico__BajaNorte
Mexico__BajaSur
Mexico__General
NZ
NZCHAT
Navajo
PRC
PST8PDT
Pacific__Apia
Pacific__Auckland
Pacific__Bougainville
Pacific__Chatham
Pacific__Chuuk
Pacific__Easter
Pacific__Efate
Pacific__Enderbury
Pacific__Fakaofo
Pacific__Fiji
Pacific__Funafuti
Pacific__Galapagos
Pacific__Gambier
Pacific__Guadalcanal
Pacific__Guam
Pacific__Honolulu
Pacific__Johnston
Pacific__Kanton
Pacific__Kiritimati
Pacific__Kosrae
Pacific__Kwajalein
Pacific__Majuro
Pacific__Marquesas
Pacific__Midway
Pacific__Nauru
Pacific__Niue
Pacific__Norfolk
Pacific__Noumea
Pacific__Pago_Pago
Pacific__Palau
Pacific__Pitcairn
Pacific__Pohnpei
Pacific__Ponape
Pacific__Port_Moresby
Pacific__Rarotonga
Pacific__Saipan
Pacific__Samoa
Pacific__Tahiti
Pacific__Tarawa
Pacific__Tongatapu
Pacific__Truk
Pacific__Wake
Pacific__Wallis
Pacific__Yap
Poland
Portugal
ROC
ROK
Singapore
Turkey
UCT
US__Alaska
US__Aleutian
US__Arizona
US__Central
US__EastIndiana
US__Eastern
US__Hawaii
US__IndianaStarke
US__Michigan
US__Mountain
US__Pacific
US__Samoa
UTC
Universal
WSU
WET
Zulu
} derive(Eq, Compare, Debug)
///|
pub extend Tz with Eq::{not_equal, equal}
///|
pub extend Tz with Compare::{op_lt, op_le, op_ge, compare, op_gt}
///|
pub extend Tz with Debug::{to_repr}
///|
/// 返回本时区的 IANA ID(如 "Europe/Paris")。
/// 查 name_to_tz 表,避免 597-arm match 触发 WASM local count 限制。
pub fn Tz::name(self : Tz) -> String {
for i = 0; i < name_to_tz.length(); i = i + 1 {
let (name, tz) = name_to_tz[i]
if tz == self {
return name
}
}
abort("unreachable: Tz::name")
}
///|
///|
/// NAME_TO_TZ 二分查找表(IANA ID 升序 → Tz variant)。
let name_to_tz : Array[(String, Tz)] = [
("Africa/Abidjan", Tz::Africa__Abidjan),
("Africa/Accra", Tz::Africa__Accra),
("Africa/Addis_Ababa", Tz::Africa__Addis_Ababa),
("Africa/Algiers", Tz::Africa__Algiers),
("Africa/Asmara", Tz::Africa__Asmara),
("Africa/Asmera", Tz::Africa__Asmera),
("Africa/Bamako", Tz::Africa__Bamako),
("Africa/Bangui", Tz::Africa__Bangui),
("Africa/Banjul", Tz::Africa__Banjul),
("Africa/Bissau", Tz::Africa__Bissau),
("Africa/Blantyre", Tz::Africa__Blantyre),
("Africa/Brazzaville", Tz::Africa__Brazzaville),
("Africa/Bujumbura", Tz::Africa__Bujumbura),
("Africa/Cairo", Tz::Africa__Cairo),
("Africa/Casablanca", Tz::Africa__Casablanca),
("Africa/Ceuta", Tz::Africa__Ceuta),
("Africa/Conakry", Tz::Africa__Conakry),
("Africa/Dakar", Tz::Africa__Dakar),
("Africa/Dar_es_Salaam", Tz::Africa__Dar_es_Salaam),
("Africa/Djibouti", Tz::Africa__Djibouti),
("Africa/Douala", Tz::Africa__Douala),
("Africa/El_Aaiun", Tz::Africa__El_Aaiun),
("Africa/Freetown", Tz::Africa__Freetown),
("Africa/Gaborone", Tz::Africa__Gaborone),
("Africa/Harare", Tz::Africa__Harare),
("Africa/Johannesburg", Tz::Africa__Johannesburg),
("Africa/Juba", Tz::Africa__Juba),
("Africa/Kampala", Tz::Africa__Kampala),
("Africa/Khartoum", Tz::Africa__Khartoum),
("Africa/Kigali", Tz::Africa__Kigali),
("Africa/Kinshasa", Tz::Africa__Kinshasa),
("Africa/Lagos", Tz::Africa__Lagos),
("Africa/Libreville", Tz::Africa__Libreville),
("Africa/Lome", Tz::Africa__Lome),
("Africa/Luanda", Tz::Africa__Luanda),
("Africa/Lubumbashi", Tz::Africa__Lubumbashi),
("Africa/Lusaka", Tz::Africa__Lusaka),
("Africa/Malabo", Tz::Africa__Malabo),
("Africa/Maputo", Tz::Africa__Maputo),
("Africa/Maseru", Tz::Africa__Maseru),
("Africa/Mbabane", Tz::Africa__Mbabane),
("Africa/Mogadishu", Tz::Africa__Mogadishu),
("Africa/Monrovia", Tz::Africa__Monrovia),
("Africa/Nairobi", Tz::Africa__Nairobi),
("Africa/Ndjamena", Tz::Africa__Ndjamena),
("Africa/Niamey", Tz::Africa__Niamey),
("Africa/Nouakchott", Tz::Africa__Nouakchott),
("Africa/Ouagadougou", Tz::Africa__Ouagadougou),
("Africa/Porto-Novo", Tz::Africa__PortoNovo),
("Africa/Sao_Tome", Tz::Africa__Sao_Tome),
("Africa/Timbuktu", Tz::Africa__Timbuktu),
("Africa/Tripoli", Tz::Africa__Tripoli),
("Africa/Tunis", Tz::Africa__Tunis),
("Africa/Windhoek", Tz::Africa__Windhoek),
("America/Adak", Tz::America__Adak),
("America/Anchorage", Tz::America__Anchorage),
("America/Anguilla", Tz::America__Anguilla),
("America/Antigua", Tz::America__Antigua),
("America/Araguaina", Tz::America__Araguaina),
("America/Argentina/Buenos_Aires", Tz::America__Argentina__Buenos_Aires),
("America/Argentina/Catamarca", Tz::America__Argentina__Catamarca),
("America/Argentina/ComodRivadavia", Tz::America__Argentina__ComodRivadavia),
("America/Argentina/Cordoba", Tz::America__Argentina__Cordoba),
("America/Argentina/Jujuy", Tz::America__Argentina__Jujuy),
("America/Argentina/La_Rioja", Tz::America__Argentina__La_Rioja),
("America/Argentina/Mendoza", Tz::America__Argentina__Mendoza),
("America/Argentina/Rio_Gallegos", Tz::America__Argentina__Rio_Gallegos),
("America/Argentina/Salta", Tz::America__Argentina__Salta),
("America/Argentina/San_Juan", Tz::America__Argentina__San_Juan),
("America/Argentina/San_Luis", Tz::America__Argentina__San_Luis),
("America/Argentina/Tucuman", Tz::America__Argentina__Tucuman),
("America/Argentina/Ushuaia", Tz::America__Argentina__Ushuaia),
("America/Aruba", Tz::America__Aruba),
("America/Asuncion", Tz::America__Asuncion),
("America/Atikokan", Tz::America__Atikokan),
("America/Atka", Tz::America__Atka),
("America/Bahia", Tz::America__Bahia),
("America/Bahia_Banderas", Tz::America__Bahia_Banderas),
("America/Barbados", Tz::America__Barbados),
("America/Belem", Tz::America__Belem),
("America/Belize", Tz::America__Belize),
("America/Blanc-Sablon", Tz::America__BlancSablon),
("America/Boa_Vista", Tz::America__Boa_Vista),
("America/Bogota", Tz::America__Bogota),
("America/Boise", Tz::America__Boise),
("America/Buenos_Aires", Tz::America__Buenos_Aires),
("America/Cambridge_Bay", Tz::America__Cambridge_Bay),
("America/Campo_Grande", Tz::America__Campo_Grande),
("America/Cancun", Tz::America__Cancun),
("America/Caracas", Tz::America__Caracas),
("America/Catamarca", Tz::America__Catamarca),
("America/Cayenne", Tz::America__Cayenne),
("America/Cayman", Tz::America__Cayman),
("America/Chicago", Tz::America__Chicago),
("America/Chihuahua", Tz::America__Chihuahua),
("America/Ciudad_Juarez", Tz::America__Ciudad_Juarez),
("America/Coral_Harbour", Tz::America__Coral_Harbour),
("America/Cordoba", Tz::America__Cordoba),
("America/Costa_Rica", Tz::America__Costa_Rica),
("America/Coyhaique", Tz::America__Coyhaique),
("America/Creston", Tz::America__Creston),
("America/Cuiaba", Tz::America__Cuiaba),
("America/Curacao", Tz::America__Curacao),
("America/Danmarkshavn", Tz::America__Danmarkshavn),
("America/Dawson", Tz::America__Dawson),
("America/Dawson_Creek", Tz::America__Dawson_Creek),
("America/Denver", Tz::America__Denver),
("America/Detroit", Tz::America__Detroit),
("America/Dominica", Tz::America__Dominica),
("America/Edmonton", Tz::America__Edmonton),
("America/Eirunepe", Tz::America__Eirunepe),
("America/El_Salvador", Tz::America__El_Salvador),
("America/Ensenada", Tz::America__Ensenada),
("America/Fort_Nelson", Tz::America__Fort_Nelson),
("America/Fort_Wayne", Tz::America__Fort_Wayne),
("America/Fortaleza", Tz::America__Fortaleza),
("America/Glace_Bay", Tz::America__Glace_Bay),
("America/Godthab", Tz::America__Godthab),
("America/Goose_Bay", Tz::America__Goose_Bay),
("America/Grand_Turk", Tz::America__Grand_Turk),
("America/Grenada", Tz::America__Grenada),
("America/Guadeloupe", Tz::America__Guadeloupe),
("America/Guatemala", Tz::America__Guatemala),
("America/Guayaquil", Tz::America__Guayaquil),
("America/Guyana", Tz::America__Guyana),
("America/Halifax", Tz::America__Halifax),
("America/Havana", Tz::America__Havana),
("America/Hermosillo", Tz::America__Hermosillo),
("America/Indiana/Indianapolis", Tz::America__Indiana__Indianapolis),
("America/Indiana/Knox", Tz::America__Indiana__Knox),
("America/Indiana/Marengo", Tz::America__Indiana__Marengo),
("America/Indiana/Petersburg", Tz::America__Indiana__Petersburg),
("America/Indiana/Tell_City", Tz::America__Indiana__Tell_City),
("America/Indiana/Vevay", Tz::America__Indiana__Vevay),
("America/Indiana/Vincennes", Tz::America__Indiana__Vincennes),
("America/Indiana/Winamac", Tz::America__Indiana__Winamac),
("America/Indianapolis", Tz::America__Indianapolis),
("America/Inuvik", Tz::America__Inuvik),
("America/Iqaluit", Tz::America__Iqaluit),
("America/Jamaica", Tz::America__Jamaica),
("America/Jujuy", Tz::America__Jujuy),
("America/Juneau", Tz::America__Juneau),
("America/Kentucky/Louisville", Tz::America__Kentucky__Louisville),
("America/Kentucky/Monticello", Tz::America__Kentucky__Monticello),
("America/Knox_IN", Tz::America__Knox_IN),
("America/Kralendijk", Tz::America__Kralendijk),
("America/La_Paz", Tz::America__La_Paz),
("America/Lima", Tz::America__Lima),
("America/Los_Angeles", Tz::America__Los_Angeles),
("America/Louisville", Tz::America__Louisville),
("America/Lower_Princes", Tz::America__Lower_Princes),
("America/Maceio", Tz::America__Maceio),
("America/Managua", Tz::America__Managua),
("America/Manaus", Tz::America__Manaus),
("America/Marigot", Tz::America__Marigot),
("America/Martinique", Tz::America__Martinique),
("America/Matamoros", Tz::America__Matamoros),
("America/Mazatlan", Tz::America__Mazatlan),
("America/Mendoza", Tz::America__Mendoza),
("America/Menominee", Tz::America__Menominee),
("America/Merida", Tz::America__Merida),
("America/Metlakatla", Tz::America__Metlakatla),
("America/Mexico_City", Tz::America__Mexico_City),
("America/Miquelon", Tz::America__Miquelon),
("America/Moncton", Tz::America__Moncton),
("America/Monterrey", Tz::America__Monterrey),
("America/Montevideo", Tz::America__Montevideo),
("America/Montreal", Tz::America__Montreal),
("America/Montserrat", Tz::America__Montserrat),
("America/Nassau", Tz::America__Nassau),
("America/New_York", Tz::America__New_York),
("America/Nipigon", Tz::America__Nipigon),
("America/Nome", Tz::America__Nome),
("America/Noronha", Tz::America__Noronha),
("America/North_Dakota/Beulah", Tz::America__North_Dakota__Beulah),
("America/North_Dakota/Center", Tz::America__North_Dakota__Center),
("America/North_Dakota/New_Salem", Tz::America__North_Dakota__New_Salem),
("America/Nuuk", Tz::America__Nuuk),
("America/Ojinaga", Tz::America__Ojinaga),
("America/Panama", Tz::America__Panama),
("America/Pangnirtung", Tz::America__Pangnirtung),
("America/Paramaribo", Tz::America__Paramaribo),
("America/Phoenix", Tz::America__Phoenix),
("America/Port-au-Prince", Tz::America__PortauPrince),
("America/Port_of_Spain", Tz::America__Port_of_Spain),
("America/Porto_Acre", Tz::America__Porto_Acre),
("America/Porto_Velho", Tz::America__Porto_Velho),
("America/Puerto_Rico", Tz::America__Puerto_Rico),
("America/Punta_Arenas", Tz::America__Punta_Arenas),
("America/Rainy_River", Tz::America__Rainy_River),
("America/Rankin_Inlet", Tz::America__Rankin_Inlet),
("America/Recife", Tz::America__Recife),
("America/Regina", Tz::America__Regina),
("America/Resolute", Tz::America__Resolute),
("America/Rio_Branco", Tz::America__Rio_Branco),
("America/Rosario", Tz::America__Rosario),
("America/Santa_Isabel", Tz::America__Santa_Isabel),
("America/Santarem", Tz::America__Santarem),
("America/Santiago", Tz::America__Santiago),
("America/Santo_Domingo", Tz::America__Santo_Domingo),
("America/Sao_Paulo", Tz::America__Sao_Paulo),
("America/Scoresbysund", Tz::America__Scoresbysund),
("America/Shiprock", Tz::America__Shiprock),
("America/Sitka", Tz::America__Sitka),
("America/St_Barthelemy", Tz::America__St_Barthelemy),
("America/St_Johns", Tz::America__St_Johns),
("America/St_Kitts", Tz::America__St_Kitts),
("America/St_Lucia", Tz::America__St_Lucia),
("America/St_Thomas", Tz::America__St_Thomas),
("America/St_Vincent", Tz::America__St_Vincent),
("America/Swift_Current", Tz::America__Swift_Current),
("America/Tegucigalpa", Tz::America__Tegucigalpa),
("America/Thule", Tz::America__Thule),
("America/Thunder_Bay", Tz::America__Thunder_Bay),
("America/Tijuana", Tz::America__Tijuana),
("America/Toronto", Tz::America__Toronto),
("America/Tortola", Tz::America__Tortola),
("America/Vancouver", Tz::America__Vancouver),
("America/Virgin", Tz::America__Virgin),
("America/Whitehorse", Tz::America__Whitehorse),
("America/Winnipeg", Tz::America__Winnipeg),
("America/Yakutat", Tz::America__Yakutat),
("America/Yellowknife", Tz::America__Yellowknife),
("Antarctica/Casey", Tz::Antarctica__Casey),
("Antarctica/Davis", Tz::Antarctica__Davis),
("Antarctica/DumontDUrville", Tz::Antarctica__DumontDUrville),
("Antarctica/Macquarie", Tz::Antarctica__Macquarie),
("Antarctica/Mawson", Tz::Antarctica__Mawson),
("Antarctica/McMurdo", Tz::Antarctica__McMurdo),
("Antarctica/Palmer", Tz::Antarctica__Palmer),
("Antarctica/Rothera", Tz::Antarctica__Rothera),
("Antarctica/South_Pole", Tz::Antarctica__South_Pole),
("Antarctica/Syowa", Tz::Antarctica__Syowa),
("Antarctica/Troll", Tz::Antarctica__Troll),
("Antarctica/Vostok", Tz::Antarctica__Vostok),
("Arctic/Longyearbyen", Tz::Arctic__Longyearbyen),
("Asia/Aden", Tz::Asia__Aden),
("Asia/Almaty", Tz::Asia__Almaty),
("Asia/Amman", Tz::Asia__Amman),
("Asia/Anadyr", Tz::Asia__Anadyr),
("Asia/Aqtau", Tz::Asia__Aqtau),
("Asia/Aqtobe", Tz::Asia__Aqtobe),
("Asia/Ashgabat", Tz::Asia__Ashgabat),
("Asia/Ashkhabad", Tz::Asia__Ashkhabad),
("Asia/Atyrau", Tz::Asia__Atyrau),
("Asia/Baghdad", Tz::Asia__Baghdad),
("Asia/Bahrain", Tz::Asia__Bahrain),
("Asia/Baku", Tz::Asia__Baku),
("Asia/Bangkok", Tz::Asia__Bangkok),
("Asia/Barnaul", Tz::Asia__Barnaul),
("Asia/Beirut", Tz::Asia__Beirut),
("Asia/Bishkek", Tz::Asia__Bishkek),
("Asia/Brunei", Tz::Asia__Brunei),
("Asia/Calcutta", Tz::Asia__Calcutta),
("Asia/Chita", Tz::Asia__Chita),
("Asia/Choibalsan", Tz::Asia__Choibalsan),
("Asia/Chongqing", Tz::Asia__Chongqing),
("Asia/Chungking", Tz::Asia__Chungking),
("Asia/Colombo", Tz::Asia__Colombo),
("Asia/Dacca", Tz::Asia__Dacca),
("Asia/Damascus", Tz::Asia__Damascus),
("Asia/Dhaka", Tz::Asia__Dhaka),
("Asia/Dili", Tz::Asia__Dili),
("Asia/Dubai", Tz::Asia__Dubai),
("Asia/Dushanbe", Tz::Asia__Dushanbe),
("Asia/Famagusta", Tz::Asia__Famagusta),
("Asia/Gaza", Tz::Asia__Gaza),
("Asia/Harbin", Tz::Asia__Harbin),
("Asia/Hebron", Tz::Asia__Hebron),
("Asia/Ho_Chi_Minh", Tz::Asia__Ho_Chi_Minh),
("Asia/Hong_Kong", Tz::Asia__Hong_Kong),
("Asia/Hovd", Tz::Asia__Hovd),
("Asia/Irkutsk", Tz::Asia__Irkutsk),
("Asia/Istanbul", Tz::Asia__Istanbul),
("Asia/Jakarta", Tz::Asia__Jakarta),
("Asia/Jayapura", Tz::Asia__Jayapura),
("Asia/Jerusalem", Tz::Asia__Jerusalem),
("Asia/Kabul", Tz::Asia__Kabul),
("Asia/Kamchatka", Tz::Asia__Kamchatka),
("Asia/Karachi", Tz::Asia__Karachi),
("Asia/Kashgar", Tz::Asia__Kashgar),
("Asia/Kathmandu", Tz::Asia__Kathmandu),
("Asia/Katmandu", Tz::Asia__Katmandu),
("Asia/Khandyga", Tz::Asia__Khandyga),
("Asia/Kolkata", Tz::Asia__Kolkata),
("Asia/Krasnoyarsk", Tz::Asia__Krasnoyarsk),
("Asia/Kuala_Lumpur", Tz::Asia__Kuala_Lumpur),
("Asia/Kuching", Tz::Asia__Kuching),
("Asia/Kuwait", Tz::Asia__Kuwait),
("Asia/Macao", Tz::Asia__Macao),
("Asia/Macau", Tz::Asia__Macau),
("Asia/Magadan", Tz::Asia__Magadan),
("Asia/Makassar", Tz::Asia__Makassar),
("Asia/Manila", Tz::Asia__Manila),
("Asia/Muscat", Tz::Asia__Muscat),
("Asia/Nicosia", Tz::Asia__Nicosia),
("Asia/Novokuznetsk", Tz::Asia__Novokuznetsk),
("Asia/Novosibirsk", Tz::Asia__Novosibirsk),
("Asia/Omsk", Tz::Asia__Omsk),
("Asia/Oral", Tz::Asia__Oral),
("Asia/Phnom_Penh", Tz::Asia__Phnom_Penh),
("Asia/Pontianak", Tz::Asia__Pontianak),
("Asia/Pyongyang", Tz::Asia__Pyongyang),
("Asia/Qatar", Tz::Asia__Qatar),
("Asia/Qostanay", Tz::Asia__Qostanay),
("Asia/Qyzylorda", Tz::Asia__Qyzylorda),
("Asia/Rangoon", Tz::Asia__Rangoon),
("Asia/Riyadh", Tz::Asia__Riyadh),
("Asia/Saigon", Tz::Asia__Saigon),
("Asia/Sakhalin", Tz::Asia__Sakhalin),
("Asia/Samarkand", Tz::Asia__Samarkand),
("Asia/Seoul", Tz::Asia__Seoul),
("Asia/Shanghai", Tz::Asia__Shanghai),
("Asia/Singapore", Tz::Asia__Singapore),
("Asia/Srednekolymsk", Tz::Asia__Srednekolymsk),
("Asia/Taipei", Tz::Asia__Taipei),
("Asia/Tashkent", Tz::Asia__Tashkent),
("Asia/Tbilisi", Tz::Asia__Tbilisi),
("Asia/Tehran", Tz::Asia__Tehran),
("Asia/Tel_Aviv", Tz::Asia__Tel_Aviv),
("Asia/Thimbu", Tz::Asia__Thimbu),
("Asia/Thimphu", Tz::Asia__Thimphu),
("Asia/Tokyo", Tz::Asia__Tokyo),
("Asia/Tomsk", Tz::Asia__Tomsk),
("Asia/Ujung_Pandang", Tz::Asia__Ujung_Pandang),
("Asia/Ulaanbaatar", Tz::Asia__Ulaanbaatar),
("Asia/Ulan_Bator", Tz::Asia__Ulan_Bator),
("Asia/Urumqi", Tz::Asia__Urumqi),
("Asia/Ust-Nera", Tz::Asia__UstNera),
("Asia/Vientiane", Tz::Asia__Vientiane),
("Asia/Vladivostok", Tz::Asia__Vladivostok),
("Asia/Yakutsk", Tz::Asia__Yakutsk),
("Asia/Yangon", Tz::Asia__Yangon),
("Asia/Yekaterinburg", Tz::Asia__Yekaterinburg),
("Asia/Yerevan", Tz::Asia__Yerevan),
("Atlantic/Azores", Tz::Atlantic__Azores),
("Atlantic/Bermuda", Tz::Atlantic__Bermuda),
("Atlantic/Canary", Tz::Atlantic__Canary),
("Atlantic/Cape_Verde", Tz::Atlantic__Cape_Verde),
("Atlantic/Faeroe", Tz::Atlantic__Faeroe),
("Atlantic/Faroe", Tz::Atlantic__Faroe),
("Atlantic/Jan_Mayen", Tz::Atlantic__Jan_Mayen),
("Atlantic/Madeira", Tz::Atlantic__Madeira),
("Atlantic/Reykjavik", Tz::Atlantic__Reykjavik),
("Atlantic/South_Georgia", Tz::Atlantic__South_Georgia),
("Atlantic/St_Helena", Tz::Atlantic__St_Helena),
("Atlantic/Stanley", Tz::Atlantic__Stanley),
("Australia/ACT", Tz::Australia__ACT),
("Australia/Adelaide", Tz::Australia__Adelaide),
("Australia/Brisbane", Tz::Australia__Brisbane),
("Australia/Broken_Hill", Tz::Australia__Broken_Hill),
("Australia/Canberra", Tz::Australia__Canberra),
("Australia/Currie", Tz::Australia__Currie),
("Australia/Darwin", Tz::Australia__Darwin),
("Australia/Eucla", Tz::Australia__Eucla),
("Australia/Hobart", Tz::Australia__Hobart),
("Australia/LHI", Tz::Australia__LHI),
("Australia/Lindeman", Tz::Australia__Lindeman),
("Australia/Lord_Howe", Tz::Australia__Lord_Howe),
("Australia/Melbourne", Tz::Australia__Melbourne),
("Australia/NSW", Tz::Australia__NSW),
("Australia/North", Tz::Australia__North),
("Australia/Perth", Tz::Australia__Perth),
("Australia/Queensland", Tz::Australia__Queensland),
("Australia/South", Tz::Australia__South),
("Australia/Sydney", Tz::Australia__Sydney),
("Australia/Tasmania", Tz::Australia__Tasmania),
("Australia/Victoria", Tz::Australia__Victoria),
("Australia/West", Tz::Australia__West),
("Australia/Yancowinna", Tz::Australia__Yancowinna),
("Brazil/Acre", Tz::Brazil__Acre),
("Brazil/DeNoronha", Tz::Brazil__DeNoronha),
("Brazil/East", Tz::Brazil__East),
("Brazil/West", Tz::Brazil__West),
("CET", Tz::CET),
("CST6CDT", Tz::CST6CDT),
("Canada/Atlantic", Tz::Canada__Atlantic),
("Canada/Central", Tz::Canada__Central),
("Canada/Eastern", Tz::Canada__Eastern),
("Canada/Mountain", Tz::Canada__Mountain),
("Canada/Newfoundland", Tz::Canada__Newfoundland),
("Canada/Pacific", Tz::Canada__Pacific),
("Canada/Saskatchewan", Tz::Canada__Saskatchewan),
("Canada/Yukon", Tz::Canada__Yukon),
("Chile/Continental", Tz::Chile__Continental),
("Chile/EasterIsland", Tz::Chile__EasterIsland),
("Cuba", Tz::Cuba),
("EET", Tz::EET),
("EST", Tz::EST),
("EST5EDT", Tz::EST5EDT),
("Egypt", Tz::Egypt),
("Eire", Tz::Eire),
("Etc/GMT", Tz::Etc__GMT),
("Etc/GMT+0", Tz::Etc__GMTPlus0),
("Etc/GMT+1", Tz::Etc__GMTPlus1),
("Etc/GMT+10", Tz::Etc__GMTPlus10),
("Etc/GMT+11", Tz::Etc__GMTPlus11),
("Etc/GMT+12", Tz::Etc__GMTPlus12),
("Etc/GMT+2", Tz::Etc__GMTPlus2),
("Etc/GMT+3", Tz::Etc__GMTPlus3),
("Etc/GMT+4", Tz::Etc__GMTPlus4),
("Etc/GMT+5", Tz::Etc__GMTPlus5),
("Etc/GMT+6", Tz::Etc__GMTPlus6),
("Etc/GMT+7", Tz::Etc__GMTPlus7),
("Etc/GMT+8", Tz::Etc__GMTPlus8),
("Etc/GMT+9", Tz::Etc__GMTPlus9),
("Etc/GMT-0", Tz::Etc__GMTMinus0),
("Etc/GMT-1", Tz::Etc__GMTMinus1),
("Etc/GMT-10", Tz::Etc__GMTMinus10),
("Etc/GMT-11", Tz::Etc__GMTMinus11),
("Etc/GMT-12", Tz::Etc__GMTMinus12),
("Etc/GMT-13", Tz::Etc__GMTMinus13),
("Etc/GMT-14", Tz::Etc__GMTMinus14),
("Etc/GMT-2", Tz::Etc__GMTMinus2),
("Etc/GMT-3", Tz::Etc__GMTMinus3),
("Etc/GMT-4", Tz::Etc__GMTMinus4),
("Etc/GMT-5", Tz::Etc__GMTMinus5),
("Etc/GMT-6", Tz::Etc__GMTMinus6),
("Etc/GMT-7", Tz::Etc__GMTMinus7),
("Etc/GMT-8", Tz::Etc__GMTMinus8),
("Etc/GMT-9", Tz::Etc__GMTMinus9),
("Etc/GMT0", Tz::Etc__GMT0),
("Etc/Greenwich", Tz::Etc__Greenwich),
("Etc/UCT", Tz::Etc__UCT),
("Etc/UTC", Tz::Etc__UTC),
("Etc/Universal", Tz::Etc__Universal),
("Etc/Zulu", Tz::Etc__Zulu),
("Europe/Amsterdam", Tz::Europe__Amsterdam),
("Europe/Andorra", Tz::Europe__Andorra),
("Europe/Astrakhan", Tz::Europe__Astrakhan),
("Europe/Athens", Tz::Europe__Athens),
("Europe/Belfast", Tz::Europe__Belfast),
("Europe/Belgrade", Tz::Europe__Belgrade),
("Europe/Berlin", Tz::Europe__Berlin),
("Europe/Bratislava", Tz::Europe__Bratislava),
("Europe/Brussels", Tz::Europe__Brussels),
("Europe/Bucharest", Tz::Europe__Bucharest),
("Europe/Budapest", Tz::Europe__Budapest),
("Europe/Busingen", Tz::Europe__Busingen),
("Europe/Chisinau", Tz::Europe__Chisinau),
("Europe/Copenhagen", Tz::Europe__Copenhagen),
("Europe/Dublin", Tz::Europe__Dublin),
("Europe/Gibraltar", Tz::Europe__Gibraltar),
("Europe/Guernsey", Tz::Europe__Guernsey),
("Europe/Helsinki", Tz::Europe__Helsinki),
("Europe/Isle_of_Man", Tz::Europe__Isle_of_Man),
("Europe/Istanbul", Tz::Europe__Istanbul),
("Europe/Jersey", Tz::Europe__Jersey),
("Europe/Kaliningrad", Tz::Europe__Kaliningrad),
("Europe/Kiev", Tz::Europe__Kiev),
("Europe/Kirov", Tz::Europe__Kirov),
("Europe/Kyiv", Tz::Europe__Kyiv),
("Europe/Lisbon", Tz::Europe__Lisbon),
("Europe/Ljubljana", Tz::Europe__Ljubljana),
("Europe/London", Tz::Europe__London),
("Europe/Luxembourg", Tz::Europe__Luxembourg),
("Europe/Madrid", Tz::Europe__Madrid),
("Europe/Malta", Tz::Europe__Malta),
("Europe/Mariehamn", Tz::Europe__Mariehamn),
("Europe/Minsk", Tz::Europe__Minsk),
("Europe/Monaco", Tz::Europe__Monaco),
("Europe/Moscow", Tz::Europe__Moscow),
("Europe/Nicosia", Tz::Europe__Nicosia),
("Europe/Oslo", Tz::Europe__Oslo),
("Europe/Paris", Tz::Europe__Paris),
("Europe/Podgorica", Tz::Europe__Podgorica),
("Europe/Prague", Tz::Europe__Prague),
("Europe/Riga", Tz::Europe__Riga),
("Europe/Rome", Tz::Europe__Rome),
("Europe/Samara", Tz::Europe__Samara),
("Europe/San_Marino", Tz::Europe__San_Marino),
("Europe/Sarajevo", Tz::Europe__Sarajevo),
("Europe/Saratov", Tz::Europe__Saratov),
("Europe/Simferopol", Tz::Europe__Simferopol),
("Europe/Skopje", Tz::Europe__Skopje),
("Europe/Sofia", Tz::Europe__Sofia),
("Europe/Stockholm", Tz::Europe__Stockholm),
("Europe/Tallinn", Tz::Europe__Tallinn),
("Europe/Tirane", Tz::Europe__Tirane),
("Europe/Tiraspol", Tz::Europe__Tiraspol),
("Europe/Ulyanovsk", Tz::Europe__Ulyanovsk),
("Europe/Uzhgorod", Tz::Europe__Uzhgorod),
("Europe/Vaduz", Tz::Europe__Vaduz),
("Europe/Vatican", Tz::Europe__Vatican),
("Europe/Vienna", Tz::Europe__Vienna),
("Europe/Vilnius", Tz::Europe__Vilnius),
("Europe/Volgograd", Tz::Europe__Volgograd),
("Europe/Warsaw", Tz::Europe__Warsaw),
("Europe/Zagreb", Tz::Europe__Zagreb),
("Europe/Zaporozhye", Tz::Europe__Zaporozhye),
("Europe/Zurich", Tz::Europe__Zurich),
("GB", Tz::GB),
("GB-Eire", Tz::GBEire),
("GMT", Tz::GMT),
("GMT+0", Tz::GMTPlus0),
("GMT-0", Tz::GMTMinus0),
("GMT0", Tz::GMT0),
("Greenwich", Tz::Greenwich),
("HST", Tz::HST),
("Hongkong", Tz::Hongkong),
("Iceland", Tz::Iceland),
("Indian/Antananarivo", Tz::Indian__Antananarivo),
("Indian/Chagos", Tz::Indian__Chagos),
("Indian/Christmas", Tz::Indian__Christmas),
("Indian/Cocos", Tz::Indian__Cocos),
("Indian/Comoro", Tz::Indian__Comoro),
("Indian/Kerguelen", Tz::Indian__Kerguelen),
("Indian/Mahe", Tz::Indian__Mahe),
("Indian/Maldives", Tz::Indian__Maldives),
("Indian/Mauritius", Tz::Indian__Mauritius),
("Indian/Mayotte", Tz::Indian__Mayotte),
("Indian/Reunion", Tz::Indian__Reunion),
("Iran", Tz::Iran),
("Israel", Tz::Israel),
("Jamaica", Tz::Jamaica),
("Japan", Tz::Japan),
("Kwajalein", Tz::Kwajalein),
("Libya", Tz::Libya),
("MET", Tz::MET),
("MST", Tz::MST),
("MST7MDT", Tz::MST7MDT),
("Mexico/BajaNorte", Tz::Mexico__BajaNorte),
("Mexico/BajaSur", Tz::Mexico__BajaSur),
("Mexico/General", Tz::Mexico__General),
("NZ", Tz::NZ),
("NZ-CHAT", Tz::NZCHAT),
("Navajo", Tz::Navajo),
("PRC", Tz::PRC),
("PST8PDT", Tz::PST8PDT),
("Pacific/Apia", Tz::Pacific__Apia),
("Pacific/Auckland", Tz::Pacific__Auckland),
("Pacific/Bougainville", Tz::Pacific__Bougainville),
("Pacific/Chatham", Tz::Pacific__Chatham),
("Pacific/Chuuk", Tz::Pacific__Chuuk),
("Pacific/Easter", Tz::Pacific__Easter),
("Pacific/Efate", Tz::Pacific__Efate),
("Pacific/Enderbury", Tz::Pacific__Enderbury),
("Pacific/Fakaofo", Tz::Pacific__Fakaofo),
("Pacific/Fiji", Tz::Pacific__Fiji),
("Pacific/Funafuti", Tz::Pacific__Funafuti),
("Pacific/Galapagos", Tz::Pacific__Galapagos),
("Pacific/Gambier", Tz::Pacific__Gambier),
("Pacific/Guadalcanal", Tz::Pacific__Guadalcanal),
("Pacific/Guam", Tz::Pacific__Guam),
("Pacific/Honolulu", Tz::Pacific__Honolulu),
("Pacific/Johnston", Tz::Pacific__Johnston),
("Pacific/Kanton", Tz::Pacific__Kanton),
("Pacific/Kiritimati", Tz::Pacific__Kiritimati),
("Pacific/Kosrae", Tz::Pacific__Kosrae),
("Pacific/Kwajalein", Tz::Pacific__Kwajalein),
("Pacific/Majuro", Tz::Pacific__Majuro),
("Pacific/Marquesas", Tz::Pacific__Marquesas),
("Pacific/Midway", Tz::Pacific__Midway),
("Pacific/Nauru", Tz::Pacific__Nauru),
("Pacific/Niue", Tz::Pacific__Niue),
("Pacific/Norfolk", Tz::Pacific__Norfolk),
("Pacific/Noumea", Tz::Pacific__Noumea),
("Pacific/Pago_Pago", Tz::Pacific__Pago_Pago),
("Pacific/Palau", Tz::Pacific__Palau),
("Pacific/Pitcairn", Tz::Pacific__Pitcairn),
("Pacific/Pohnpei", Tz::Pacific__Pohnpei),
("Pacific/Ponape", Tz::Pacific__Ponape),
("Pacific/Port_Moresby", Tz::Pacific__Port_Moresby),
("Pacific/Rarotonga", Tz::Pacific__Rarotonga),
("Pacific/Saipan", Tz::Pacific__Saipan),
("Pacific/Samoa", Tz::Pacific__Samoa),
("Pacific/Tahiti", Tz::Pacific__Tahiti),
("Pacific/Tarawa", Tz::Pacific__Tarawa),
("Pacific/Tongatapu", Tz::Pacific__Tongatapu),
("Pacific/Truk", Tz::Pacific__Truk),
("Pacific/Wake", Tz::Pacific__Wake),
("Pacific/Wallis", Tz::Pacific__Wallis),
("Pacific/Yap", Tz::Pacific__Yap),
("Poland", Tz::Poland),
("Portugal", Tz::Portugal),
("ROC", Tz::ROC),
("ROK", Tz::ROK),
("Singapore", Tz::Singapore),
("Turkey", Tz::Turkey),
("UCT", Tz::UCT),
("US/Alaska", Tz::US__Alaska),
("US/Aleutian", Tz::US__Aleutian),
("US/Arizona", Tz::US__Arizona),
("US/Central", Tz::US__Central),
("US/East-Indiana", Tz::US__EastIndiana),
("US/Eastern", Tz::US__Eastern),
("US/Hawaii", Tz::US__Hawaii),
("US/Indiana-Starke", Tz::US__IndianaStarke),
("US/Michigan", Tz::US__Michigan),
("US/Mountain", Tz::US__Mountain),
("US/Pacific", Tz::US__Pacific),
("US/Samoa", Tz::US__Samoa),
("UTC", Tz::UTC),
("Universal", Tz::Universal),
("W-SU", Tz::WSU),
("WET", Tz::WET),
("Zulu", Tz::Zulu),
]
///|
/// 字典序(字节序)字符串比较:a < b 返回 true。
/// MoonBit 内置 String 的 `<` 是长度优先比较,不适用于按字典序排列的表。
fn str_dict_lt(a : String, b : String) -> Bool {
let la = a.length()
let lb = b.length()
let min_len = if la < lb { la } else { lb }
for i in 0.. b[i] {
return false
}
}
la < lb
}
///|
/// 解析 IANA 时区 ID 为 Tz variant(二分查找,未找到返回 None)。
///
/// 在按 IANA ID 升序排列的 name_to_tz 表上二分查找,O(log n)。
pub fn Tz::from_str(s : String) -> Tz? {
let mut lo = 0
let mut hi = name_to_tz.length()
while lo < hi {
let mid = lo + (hi - lo) / 2
let key = name_to_tz[mid].0
if s == key {
return Some(name_to_tz[mid].1)
}
if str_dict_lt(s, key) {
hi = mid
} else {
lo = mid + 1
}
}
None
}
///|
/// 返回全部 597 个时区,按 IANA ID 升序排列。
pub fn Tz::all() -> Array[Tz] {
let result = Array::make(name_to_tz.length(), Tz::UTC)
for i in 0.. Array[String] {
let result = Array::make(name_to_tz.length(), "")
for i in 0..