Commit aacfed54 authored by Volker Krause's avatar Volker Krause
Browse files

Add a IANA timezone to country mapping

This is largely unique, and should allow us to improve the result for the
coordinate-based timezone lookup when having a country context.

That was at least the initial motivation, however it looks like this might
eventually allow us to build a coordinate -> country mapping as well,
without needing an extra spatial index.
parent 9b93d2ec
......@@ -224,6 +224,16 @@ private Q_SLOTS:
QCOMPARE(toQTimeZone(timezoneForCountry(CountryId{"BR"})), QTimeZone());
}
void testCountryForTimezone()
{
using namespace KnowledgeDb;
qDebug() << countryForTimezone(Tz::Europe_Busingen).toString();
QCOMPARE(countryForTimezone(Tz::Europe_Busingen), CountryId{"DE"});
QCOMPARE(countryForTimezone(Tz::America_Los_Angeles), CountryId{"US"});
QCOMPARE(countryForTimezone(Tz::Asia_Kuching), CountryId{"MY"});
}
void testUICCountryCodeLookup()
{
using namespace KnowledgeDb;
......
......@@ -81,6 +81,20 @@ static constexpr const CountryTimezoneMap country_timezone_map[] = {
out->write(R"(};
static constexpr const CountryId timezone_country_map[] = {
CountryId{}, // Undefined
)");
for (const auto &tz : tzDb.m_zones) {
out->write(" ");
CodeGen::writeCountryIsoCode(out, tzDb.m_countryForZone[tz]);
out->write(", // ");
out->write(tz);
out->write("\n");
}
out->write(R"(};
}
}
)");
......
......@@ -107,8 +107,16 @@ Timezones::Timezones()
}
const auto countries = cols.at(0).split(QLatin1Char(','));
const auto tzName = cols.at(2).toUtf8();
for (const auto &country : countries) {
m_countryZones[country].push_back(cols.at(2).toUtf8());
m_countryZones[country].push_back(tzName);
}
if (countries.size() == 1) {
if (m_countryForZone.find(tzName) != m_countryForZone.end()) {
m_countryForZone[tzName] = QString();
} else {
m_countryForZone[tzName] = countries[0];
}
}
}
......
......@@ -58,6 +58,7 @@ private:
std::vector<uint16_t> m_zoneOffsets;
std::map<QString, std::vector<QByteArray>> m_countryZones;
std::map<QByteArray, QString> m_countryForZone;
};
}
......
......@@ -47,6 +47,11 @@ KnowledgeDb::Tz KnowledgeDb::timezoneForCountry(CountryId country)
return Tz::Undefined;
}
KnowledgeDb::CountryId KnowledgeDb::countryForTimezone(KnowledgeDb::Tz tz)
{
return timezone_country_map[static_cast<std::underlying_type<KnowledgeDb::Tz>::type>(tz)];
}
#if 0
KnowledgeDb::Tz KnowledgeDb::timezoneForCoordinate(float lat, float lon)
{
......
......@@ -40,6 +40,12 @@ namespace KnowledgeDb {
*/
KITINERARY_EXPORT Tz timezoneForCountry(CountryId country);
/** Returns the country for a given timezone.
* This is unique for most IANA timezones, but not guaranteed to be so,
* in which case an invalid country is returned.
*/
KITINERARY_EXPORT CountryId countryForTimezone(Tz tz);
#if 0
/** Returns the timezone for the given coordinate.
* The result can be @c Tz::Undefined if this cannot be clearly determined.
......
......@@ -1069,5 +1069,423 @@ static constexpr const CountryTimezoneMap country_timezone_map[] = {
{ CountryId{"ZW"}, Tz::Africa_Harare },
};
static constexpr const CountryId timezone_country_map[] = {
CountryId{}, // Undefined
CountryId{"CI"}, // Africa/Abidjan
CountryId{"GH"}, // Africa/Accra
CountryId{"ET"}, // Africa/Addis_Ababa
CountryId{"DZ"}, // Africa/Algiers
CountryId{"ER"}, // Africa/Asmara
CountryId{"ML"}, // Africa/Bamako
CountryId{"CF"}, // Africa/Bangui
CountryId{"GM"}, // Africa/Banjul
CountryId{"GW"}, // Africa/Bissau
CountryId{"MW"}, // Africa/Blantyre
CountryId{"CG"}, // Africa/Brazzaville
CountryId{"BI"}, // Africa/Bujumbura
CountryId{"EG"}, // Africa/Cairo
CountryId{"MA"}, // Africa/Casablanca
CountryId{"ES"}, // Africa/Ceuta
CountryId{"GN"}, // Africa/Conakry
CountryId{"SN"}, // Africa/Dakar
CountryId{"TZ"}, // Africa/Dar_es_Salaam
CountryId{"DJ"}, // Africa/Djibouti
CountryId{"CM"}, // Africa/Douala
CountryId{"EH"}, // Africa/El_Aaiun
CountryId{"SL"}, // Africa/Freetown
CountryId{"BW"}, // Africa/Gaborone
CountryId{"ZW"}, // Africa/Harare
CountryId{"ZA"}, // Africa/Johannesburg
CountryId{"SS"}, // Africa/Juba
CountryId{"UG"}, // Africa/Kampala
CountryId{"SD"}, // Africa/Khartoum
CountryId{"RW"}, // Africa/Kigali
CountryId{"CD"}, // Africa/Kinshasa
CountryId{"NG"}, // Africa/Lagos
CountryId{"GA"}, // Africa/Libreville
CountryId{"TG"}, // Africa/Lome
CountryId{"AO"}, // Africa/Luanda
CountryId{"CD"}, // Africa/Lubumbashi
CountryId{"ZM"}, // Africa/Lusaka
CountryId{"GQ"}, // Africa/Malabo
CountryId{"MZ"}, // Africa/Maputo
CountryId{"LS"}, // Africa/Maseru
CountryId{"SZ"}, // Africa/Mbabane
CountryId{"SO"}, // Africa/Mogadishu
CountryId{"LR"}, // Africa/Monrovia
CountryId{"KE"}, // Africa/Nairobi
CountryId{"TD"}, // Africa/Ndjamena
CountryId{"NE"}, // Africa/Niamey
CountryId{"MR"}, // Africa/Nouakchott
CountryId{"BF"}, // Africa/Ouagadougou
CountryId{"BJ"}, // Africa/Porto-Novo
CountryId{"ST"}, // Africa/Sao_Tome
CountryId{"LY"}, // Africa/Tripoli
CountryId{"TN"}, // Africa/Tunis
CountryId{"NA"}, // Africa/Windhoek
CountryId{"US"}, // America/Adak
CountryId{"US"}, // America/Anchorage
CountryId{"AI"}, // America/Anguilla
CountryId{"AG"}, // America/Antigua
CountryId{"BR"}, // America/Araguaina
CountryId{"AR"}, // America/Argentina/Buenos_Aires
CountryId{"AR"}, // America/Argentina/Catamarca
CountryId{"AR"}, // America/Argentina/Cordoba
CountryId{"AR"}, // America/Argentina/Jujuy
CountryId{"AR"}, // America/Argentina/La_Rioja
CountryId{"AR"}, // America/Argentina/Mendoza
CountryId{"AR"}, // America/Argentina/Rio_Gallegos
CountryId{"AR"}, // America/Argentina/Salta
CountryId{"AR"}, // America/Argentina/San_Juan
CountryId{"AR"}, // America/Argentina/San_Luis
CountryId{"AR"}, // America/Argentina/Tucuman
CountryId{"AR"}, // America/Argentina/Ushuaia
CountryId{"AW"}, // America/Aruba
CountryId{"PY"}, // America/Asuncion
CountryId{"CA"}, // America/Atikokan
CountryId{"BR"}, // America/Bahia
CountryId{"MX"}, // America/Bahia_Banderas
CountryId{"BB"}, // America/Barbados
CountryId{"BR"}, // America/Belem
CountryId{"BZ"}, // America/Belize
CountryId{"CA"}, // America/Blanc-Sablon
CountryId{"BR"}, // America/Boa_Vista
CountryId{"CO"}, // America/Bogota
CountryId{"US"}, // America/Boise
CountryId{"CA"}, // America/Cambridge_Bay
CountryId{"BR"}, // America/Campo_Grande
CountryId{"MX"}, // America/Cancun
CountryId{"VE"}, // America/Caracas
CountryId{"GF"}, // America/Cayenne
CountryId{"KY"}, // America/Cayman
CountryId{"US"}, // America/Chicago
CountryId{"MX"}, // America/Chihuahua
CountryId{"CR"}, // America/Costa_Rica
CountryId{"CA"}, // America/Creston
CountryId{"BR"}, // America/Cuiaba
CountryId{"CW"}, // America/Curacao
CountryId{"GL"}, // America/Danmarkshavn
CountryId{"CA"}, // America/Dawson
CountryId{"CA"}, // America/Dawson_Creek
CountryId{"US"}, // America/Denver
CountryId{"US"}, // America/Detroit
CountryId{"DM"}, // America/Dominica
CountryId{"CA"}, // America/Edmonton
CountryId{"BR"}, // America/Eirunepe
CountryId{"SV"}, // America/El_Salvador
CountryId{"CA"}, // America/Fort_Nelson
CountryId{"BR"}, // America/Fortaleza
CountryId{"CA"}, // America/Glace_Bay
CountryId{}, // America/Godthab
CountryId{"CA"}, // America/Goose_Bay
CountryId{"TC"}, // America/Grand_Turk
CountryId{"GD"}, // America/Grenada
CountryId{"GP"}, // America/Guadeloupe
CountryId{"GT"}, // America/Guatemala
CountryId{"EC"}, // America/Guayaquil
CountryId{"GY"}, // America/Guyana
CountryId{"CA"}, // America/Halifax
CountryId{"CU"}, // America/Havana
CountryId{"MX"}, // America/Hermosillo
CountryId{"US"}, // America/Indiana/Indianapolis
CountryId{"US"}, // America/Indiana/Knox
CountryId{"US"}, // America/Indiana/Marengo
CountryId{"US"}, // America/Indiana/Petersburg
CountryId{"US"}, // America/Indiana/Tell_City
CountryId{"US"}, // America/Indiana/Vevay
CountryId{"US"}, // America/Indiana/Vincennes
CountryId{"US"}, // America/Indiana/Winamac
CountryId{"CA"}, // America/Inuvik
CountryId{"CA"}, // America/Iqaluit
CountryId{"JM"}, // America/Jamaica
CountryId{"US"}, // America/Juneau
CountryId{"US"}, // America/Kentucky/Louisville
CountryId{"US"}, // America/Kentucky/Monticello
CountryId{"BQ"}, // America/Kralendijk
CountryId{"BO"}, // America/La_Paz
CountryId{"PE"}, // America/Lima
CountryId{"US"}, // America/Los_Angeles
CountryId{"SX"}, // America/Lower_Princes
CountryId{"BR"}, // America/Maceio
CountryId{"NI"}, // America/Managua
CountryId{"BR"}, // America/Manaus
CountryId{"MF"}, // America/Marigot
CountryId{"MQ"}, // America/Martinique
CountryId{"MX"}, // America/Matamoros
CountryId{"MX"}, // America/Mazatlan
CountryId{"US"}, // America/Menominee
CountryId{"MX"}, // America/Merida
CountryId{"US"}, // America/Metlakatla
CountryId{"MX"}, // America/Mexico_City
CountryId{"PM"}, // America/Miquelon
CountryId{"CA"}, // America/Moncton
CountryId{"MX"}, // America/Monterrey
CountryId{"UY"}, // America/Montevideo
CountryId{"MS"}, // America/Montserrat
CountryId{"BS"}, // America/Nassau
CountryId{"US"}, // America/New_York
CountryId{"CA"}, // America/Nipigon
CountryId{"US"}, // America/Nome
CountryId{"BR"}, // America/Noronha
CountryId{"US"}, // America/North_Dakota/Beulah
CountryId{"US"}, // America/North_Dakota/Center
CountryId{"US"}, // America/North_Dakota/New_Salem
CountryId{"MX"}, // America/Ojinaga
CountryId{"PA"}, // America/Panama
CountryId{"CA"}, // America/Pangnirtung
CountryId{"SR"}, // America/Paramaribo
CountryId{"US"}, // America/Phoenix
CountryId{"HT"}, // America/Port-au-Prince
CountryId{"TT"}, // America/Port_of_Spain
CountryId{"BR"}, // America/Porto_Velho
CountryId{"PR"}, // America/Puerto_Rico
CountryId{"CL"}, // America/Punta_Arenas
CountryId{"CA"}, // America/Rainy_River
CountryId{"CA"}, // America/Rankin_Inlet
CountryId{"BR"}, // America/Recife
CountryId{"CA"}, // America/Regina
CountryId{"CA"}, // America/Resolute
CountryId{"BR"}, // America/Rio_Branco
CountryId{"BR"}, // America/Santarem
CountryId{"CL"}, // America/Santiago
CountryId{"DO"}, // America/Santo_Domingo
CountryId{"BR"}, // America/Sao_Paulo
CountryId{"GL"}, // America/Scoresbysund
CountryId{"US"}, // America/Sitka
CountryId{"BL"}, // America/St_Barthelemy
CountryId{"CA"}, // America/St_Johns
CountryId{"KN"}, // America/St_Kitts
CountryId{"LC"}, // America/St_Lucia
CountryId{"VI"}, // America/St_Thomas
CountryId{"VC"}, // America/St_Vincent
CountryId{"CA"}, // America/Swift_Current
CountryId{"HN"}, // America/Tegucigalpa
CountryId{"GL"}, // America/Thule
CountryId{"CA"}, // America/Thunder_Bay
CountryId{"MX"}, // America/Tijuana
CountryId{"CA"}, // America/Toronto
CountryId{"VG"}, // America/Tortola
CountryId{"CA"}, // America/Vancouver
CountryId{"CA"}, // America/Whitehorse
CountryId{"CA"}, // America/Winnipeg
CountryId{"US"}, // America/Yakutat
CountryId{"CA"}, // America/Yellowknife
CountryId{"AU"}, // Antarctica/Macquarie
CountryId{"SJ"}, // Arctic/Longyearbyen
CountryId{"YE"}, // Asia/Aden
CountryId{"KZ"}, // Asia/Almaty
CountryId{"JO"}, // Asia/Amman
CountryId{"RU"}, // Asia/Anadyr
CountryId{"KZ"}, // Asia/Aqtau
CountryId{"KZ"}, // Asia/Aqtobe
CountryId{"TM"}, // Asia/Ashgabat
CountryId{"KZ"}, // Asia/Atyrau
CountryId{"IQ"}, // Asia/Baghdad
CountryId{"BH"}, // Asia/Bahrain
CountryId{"AZ"}, // Asia/Baku
CountryId{"TH"}, // Asia/Bangkok
CountryId{"RU"}, // Asia/Barnaul
CountryId{"LB"}, // Asia/Beirut
CountryId{"KG"}, // Asia/Bishkek
CountryId{"BN"}, // Asia/Brunei
CountryId{"RU"}, // Asia/Chita
CountryId{"MN"}, // Asia/Choibalsan
CountryId{"LK"}, // Asia/Colombo
CountryId{"SY"}, // Asia/Damascus
CountryId{"BD"}, // Asia/Dhaka
CountryId{"TL"}, // Asia/Dili
CountryId{"AE"}, // Asia/Dubai
CountryId{"TJ"}, // Asia/Dushanbe
CountryId{"CY"}, // Asia/Famagusta
CountryId{"PS"}, // Asia/Gaza
CountryId{"PS"}, // Asia/Hebron
CountryId{"VN"}, // Asia/Ho_Chi_Minh
CountryId{"HK"}, // Asia/Hong_Kong
CountryId{"MN"}, // Asia/Hovd
CountryId{"RU"}, // Asia/Irkutsk
CountryId{"ID"}, // Asia/Jakarta
CountryId{"ID"}, // Asia/Jayapura
CountryId{"IL"}, // Asia/Jerusalem
CountryId{"AF"}, // Asia/Kabul
CountryId{"RU"}, // Asia/Kamchatka
CountryId{"PK"}, // Asia/Karachi
CountryId{"NP"}, // Asia/Kathmandu
CountryId{"RU"}, // Asia/Khandyga
CountryId{"IN"}, // Asia/Kolkata
CountryId{"RU"}, // Asia/Krasnoyarsk
CountryId{"MY"}, // Asia/Kuala_Lumpur
CountryId{"MY"}, // Asia/Kuching
CountryId{"KW"}, // Asia/Kuwait
CountryId{"MO"}, // Asia/Macau
CountryId{"RU"}, // Asia/Magadan
CountryId{"ID"}, // Asia/Makassar
CountryId{"PH"}, // Asia/Manila
CountryId{"OM"}, // Asia/Muscat
CountryId{"CY"}, // Asia/Nicosia
CountryId{"RU"}, // Asia/Novokuznetsk
CountryId{"RU"}, // Asia/Novosibirsk
CountryId{"RU"}, // Asia/Omsk
CountryId{"KZ"}, // Asia/Oral
CountryId{"KH"}, // Asia/Phnom_Penh
CountryId{"ID"}, // Asia/Pontianak
CountryId{"KP"}, // Asia/Pyongyang
CountryId{"QA"}, // Asia/Qatar
CountryId{"KZ"}, // Asia/Qyzylorda
CountryId{"SA"}, // Asia/Riyadh
CountryId{"RU"}, // Asia/Sakhalin
CountryId{"UZ"}, // Asia/Samarkand
CountryId{"KR"}, // Asia/Seoul
CountryId{"CN"}, // Asia/Shanghai
CountryId{"SG"}, // Asia/Singapore
CountryId{"RU"}, // Asia/Srednekolymsk
CountryId{"TW"}, // Asia/Taipei
CountryId{"UZ"}, // Asia/Tashkent
CountryId{"GE"}, // Asia/Tbilisi
CountryId{"IR"}, // Asia/Tehran
CountryId{"BT"}, // Asia/Thimphu
CountryId{"JP"}, // Asia/Tokyo
CountryId{"RU"}, // Asia/Tomsk
CountryId{"MN"}, // Asia/Ulaanbaatar
CountryId{"CN"}, // Asia/Urumqi
CountryId{"RU"}, // Asia/Ust-Nera
CountryId{"LA"}, // Asia/Vientiane
CountryId{"RU"}, // Asia/Vladivostok
CountryId{"RU"}, // Asia/Yakutsk
CountryId{"MM"}, // Asia/Yangon
CountryId{"RU"}, // Asia/Yekaterinburg
CountryId{"AM"}, // Asia/Yerevan
CountryId{"PT"}, // Atlantic/Azores
CountryId{"BM"}, // Atlantic/Bermuda
CountryId{"ES"}, // Atlantic/Canary
CountryId{"CV"}, // Atlantic/Cape_Verde
CountryId{"FO"}, // Atlantic/Faroe
CountryId{"PT"}, // Atlantic/Madeira
CountryId{"IS"}, // Atlantic/Reykjavik
CountryId{"GS"}, // Atlantic/South_Georgia
CountryId{"SH"}, // Atlantic/St_Helena
CountryId{"FK"}, // Atlantic/Stanley
CountryId{"AU"}, // Australia/Adelaide
CountryId{"AU"}, // Australia/Brisbane
CountryId{"AU"}, // Australia/Broken_Hill
CountryId{"AU"}, // Australia/Currie
CountryId{"AU"}, // Australia/Darwin
CountryId{"AU"}, // Australia/Eucla
CountryId{"AU"}, // Australia/Hobart
CountryId{"AU"}, // Australia/Lindeman
CountryId{"AU"}, // Australia/Lord_Howe
CountryId{"AU"}, // Australia/Melbourne
CountryId{"AU"}, // Australia/Perth
CountryId{"AU"}, // Australia/Sydney
CountryId{"NL"}, // Europe/Amsterdam
CountryId{"AD"}, // Europe/Andorra
CountryId{"RU"}, // Europe/Astrakhan
CountryId{"GR"}, // Europe/Athens
CountryId{"RS"}, // Europe/Belgrade
CountryId{"DE"}, // Europe/Berlin
CountryId{"SK"}, // Europe/Bratislava
CountryId{"BE"}, // Europe/Brussels
CountryId{"RO"}, // Europe/Bucharest
CountryId{"HU"}, // Europe/Budapest
CountryId{"DE"}, // Europe/Busingen
CountryId{"MD"}, // Europe/Chisinau
CountryId{"DK"}, // Europe/Copenhagen
CountryId{"IE"}, // Europe/Dublin
CountryId{"GI"}, // Europe/Gibraltar
CountryId{"GG"}, // Europe/Guernsey
CountryId{"FI"}, // Europe/Helsinki
CountryId{"IM"}, // Europe/Isle_of_Man
CountryId{"TR"}, // Europe/Istanbul
CountryId{"JE"}, // Europe/Jersey
CountryId{"RU"}, // Europe/Kaliningrad
CountryId{"UA"}, // Europe/Kiev
CountryId{"RU"}, // Europe/Kirov
CountryId{"PT"}, // Europe/Lisbon
CountryId{"SI"}, // Europe/Ljubljana
CountryId{"GB"}, // Europe/London
CountryId{"LU"}, // Europe/Luxembourg
CountryId{"ES"}, // Europe/Madrid
CountryId{"MT"}, // Europe/Malta
CountryId{"AX"}, // Europe/Mariehamn
CountryId{"BY"}, // Europe/Minsk
CountryId{"MC"}, // Europe/Monaco
CountryId{"RU"}, // Europe/Moscow
CountryId{"NO"}, // Europe/Oslo
CountryId{"FR"}, // Europe/Paris
CountryId{"ME"}, // Europe/Podgorica
CountryId{"CZ"}, // Europe/Prague
CountryId{"LV"}, // Europe/Riga
CountryId{"IT"}, // Europe/Rome
CountryId{"RU"}, // Europe/Samara
CountryId{"SM"}, // Europe/San_Marino
CountryId{"BA"}, // Europe/Sarajevo
CountryId{"RU"}, // Europe/Saratov
CountryId{"UA"}, // Europe/Simferopol
CountryId{"MK"}, // Europe/Skopje
CountryId{"BG"}, // Europe/Sofia
CountryId{"SE"}, // Europe/Stockholm
CountryId{"EE"}, // Europe/Tallinn
CountryId{"AL"}, // Europe/Tirane
CountryId{"RU"}, // Europe/Ulyanovsk
CountryId{"UA"}, // Europe/Uzhgorod
CountryId{"LI"}, // Europe/Vaduz
CountryId{"VA"}, // Europe/Vatican
CountryId{"AT"}, // Europe/Vienna
CountryId{"LT"}, // Europe/Vilnius
CountryId{"RU"}, // Europe/Volgograd
CountryId{"PL"}, // Europe/Warsaw
CountryId{"HR"}, // Europe/Zagreb
CountryId{"UA"}, // Europe/Zaporozhye
CountryId{"CH"}, // Europe/Zurich
CountryId{"MG"}, // Indian/Antananarivo
CountryId{"IO"}, // Indian/Chagos
CountryId{"CX"}, // Indian/Christmas
CountryId{"CC"}, // Indian/Cocos
CountryId{"KM"}, // Indian/Comoro
CountryId{"TF"}, // Indian/Kerguelen
CountryId{"SC"}, // Indian/Mahe
CountryId{"MV"}, // Indian/Maldives
CountryId{"MU"}, // Indian/Mauritius
CountryId{"YT"}, // Indian/Mayotte
CountryId{"RE"}, // Indian/Reunion
CountryId{"WS"}, // Pacific/Apia
CountryId{"NZ"}, // Pacific/Auckland
CountryId{"PG"}, // Pacific/Bougainville
CountryId{"NZ"}, // Pacific/Chatham
CountryId{"FM"}, // Pacific/Chuuk
CountryId{"CL"}, // Pacific/Easter
CountryId{"VU"}, // Pacific/Efate
CountryId{"KI"}, // Pacific/Enderbury
CountryId{"TK"}, // Pacific/Fakaofo
CountryId{"FJ"}, // Pacific/Fiji
CountryId{"TV"}, // Pacific/Funafuti
CountryId{"EC"}, // Pacific/Galapagos
CountryId{"PF"}, // Pacific/Gambier
CountryId{"SB"}, // Pacific/Guadalcanal
CountryId{"GU"}, // Pacific/Guam
CountryId{"US"}, // Pacific/Honolulu
CountryId{"KI"}, // Pacific/Kiritimati
CountryId{"FM"}, // Pacific/Kosrae
CountryId{"MH"}, // Pacific/Kwajalein
CountryId{"MH"}, // Pacific/Majuro
CountryId{"PF"}, // Pacific/Marquesas
CountryId{"UM"}, // Pacific/Midway
CountryId{"NR"}, // Pacific/Nauru
CountryId{"NU"}, // Pacific/Niue
CountryId{"NF"}, // Pacific/Norfolk
CountryId{"NC"}, // Pacific/Noumea
CountryId{"AS"}, // Pacific/Pago_Pago
CountryId{"PW"}, // Pacific/Palau
CountryId{"PN"}, // Pacific/Pitcairn
CountryId{"FM"}, // Pacific/Pohnpei
CountryId{"PG"}, // Pacific/Port_Moresby
CountryId{"CK"}, // Pacific/Rarotonga
CountryId{"MP"}, // Pacific/Saipan
CountryId{"PF"}, // Pacific/Tahiti
CountryId{"KI"}, // Pacific/Tarawa
CountryId{"TO"}, // Pacific/Tongatapu
CountryId{"UM"}, // Pacific/Wake
CountryId{"WF"}, // Pacific/Wallis
};
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment