* Makefile.in: Add rules to create and depend on tzmap.h.

* tzmap-from-unicode.org: New script to create tzmap.h.
	* tzmap.h: New auto-generated file.
	* tzset.c: Drop tzmap from here and include tzmap.h instead.  Drop
	Windows 2000 considerations.
This commit is contained in:
Corinna Vinschen 2014-12-05 13:41:52 +00:00
parent a800b3ae9c
commit 4c2380d396
5 changed files with 627 additions and 489 deletions

View File

@ -1,3 +1,11 @@
2014-12-05 Corinna Vinschen <corinna@vinschen.de>
* Makefile.in: Add rules to create and depend on tzmap.h.
* tzmap-from-unicode.org: New script to create tzmap.h.
* tzmap.h: New auto-generated file.
* tzset.c: Drop tzmap from here and include tzmap.h instead. Drop
Windows 2000 considerations.
2014-11-28 Corinna Vinschen <corinna@vinschen.de>
* mkgroup.c (main): Call enum_local_groups with offset 0x30000 for local

View File

@ -84,6 +84,15 @@ path-mount.o: path.cc
${COMPILE.cc} -c -DFSTAB_ONLY -o $@ $<
mount.exe: path-mount.o
.PHONY: tzmap
tzmap:
${srcdir}/tzmap-from-unicode.org > ${srcdir}/$@.h
tzmap.h:
[ -f "${srcdir}/tzmap.h" ] || ${srcdir}/tzmap-from-unicode.org > ${srcdir}/$@
tzset.o: tzmap.h
# Provide any necessary per-target variable overrides.
cygcheck.exe: MINGW_LDFLAGS += ${ZLIB} -lwininet -lpsapi -lntdll

View File

@ -0,0 +1,85 @@
#!/bin/bash
#
# tzset-from-unicode.org
#
# Fetch XML file containing mapping of Windows timezone keynames and countries
# per ISO 3166-1 to POSIX timezones from unicode.org.
#
# Create the table file as required by tzset.c.
#
ZONES_FILE="http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml"
echo "/*"
echo " This file gets auto-generated by the script tzmap-from-unicode.org via"
echo " a Makefile rule. To regenerate the file, just call 'make tzmap'. It"
echo " fetches the file"
echo ""
echo " ${ZONES_FILE}"
echo ""
echo " using wget and converts it into the tzmap table required by tzget.c."
echo " Regenerating might be necessary on a regular basis..."
echo ""
echo " This table maps Windows timezone keynames and countries per ISO 3166-1 to"
echo " POSIX-compatible timezone IDs."
echo ""
echo " The mapping from unicode.org is just a bit incomplete. It doesn't contain"
echo " a few timezones available on Windows XP, namely:"
echo ""
echo " Armenian Standard Time"
echo " Mexico Standard Time"
echo " Mexico Standard Time 2"
echo ""
echo " as well as the still (Windows 8.1) available"
echo ""
echo " E. Europe Standard Time"
echo " Mid-Atlantic Standard Time"
echo " Kamchatka Standard Time"
echo ""
echo " as well as a few combinations which got a new Windows timezone name"
echo ""
echo " Eastern Standard Time/TC"
echo " Egypt Standard Time/PS"
echo " Greenwich Standard Time/EH"
echo " Hawaiian Standard Time/TK"
echo " Kaliningrad Standard Time/BY"
echo " SA Pacific Standard Time/HT "
echo " South Africa Standard Time/LY"
echo ""
echo " It also doesn't contain some of the deprecated country codes used in older"
echo " OSes, namely:"
echo ""
echo " SP (Serbian, proposed) used in XP"
echo " CS (Serbian and Montenegro, dissolved, now RS and ME) used in Vista"
echo " "
echo " While these are apparently old, they are required here to get a complete"
echo " mapping on all supported OSes. */"
echo "struct"
echo "{"
echo " PCWSTR win_tzkey;"
echo " PCWSTR country;"
echo " PCWSTR posix_tzid;"
echo "} tzmap[] ="
echo "{"
wget -O - "${ZONES_FILE}" | \
{
sed -n -e 's#territory="001"#territory=""#
s#.*mapZone other=\("[^"]*"\) territory=\("[^"]*"\) type=\("[^"]*"\).*# { L\1, L\2, L\3 },#p'
echo ' { L"Armenian Standard Time", L"AM", L"Asia/Yerevan" },'
echo ' { L"Central Europe Standard Time", L"CS", L"Europe/Belgrade" },'
echo ' { L"Central Europe Standard Time", L"SP", L"Europe/Belgrade" },'
echo ' { L"E. Europe Standard Time", L"", L"Asia/Nicosia" },'
echo ' { L"E. Europe Standard Time", L"CY", L"Asia/Nicosia" },'
echo ' { L"Eastern Standard Time", L"TC", L"America/Grand_Turk" },'
echo ' { L"Egypt Standard Time", L"PS", L"Asia/Gaza Asia/Hebron" },'
echo ' { L"Greenwich Standard Time", L"EH", L"Africa/El_Aaiun" },'
echo ' { L"Kaliningrad Standard Time", L"BY", L"Europe/Minsk" },'
echo ' { L"Kamchatka Standard Time", L"", L"Asia/Kamchatka" },'
echo ' { L"Hawaiian Standard Time", L"TK", L"Pacific/Fakaofo" },'
echo ' { L"Mexico Standard Time", L"", L"America/Mexico_City" },'
echo ' { L"Mexico Standard Time 2", L"", L"America/Mazatlan" },'
echo ' { L"Mid-Atlantic Standard Time", L"", L"Atlantic/South_Georgia" },'
echo ' { L"SA Pacific Standard Time", L"HT", L"America/Port-au-Prince" },'
echo ' { L"South Africa Standard Time", L"LY", L"Africa/Tripoli" },'
} | sort -d
echo "};"

514
winsup/utils/tzmap.h Normal file
View File

@ -0,0 +1,514 @@
/*
This file gets auto-generated by the script tzmap-from-unicode.org via
a Makefile rule. To regenerate the file, just call 'make tzmap'. It
fetches the file
http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml
using wget and converts it into the tzmap table required by tzget.c.
Regenerating might be necessary on a regular basis...
This table maps Windows timezone keynames and countries per ISO 3166-1 to
POSIX-compatible timezone IDs.
The mapping from unicode.org is just a bit incomplete. It doesn't contain
a few timezones available on Windows XP, namely:
Armenian Standard Time
Mexico Standard Time
Mexico Standard Time 2
as well as the still (Windows 8.1) available
E. Europe Standard Time
Mid-Atlantic Standard Time
Kamchatka Standard Time
as well as a few combinations which got a new Windows timezone name
Eastern Standard Time/TC
Egypt Standard Time/PS
Greenwich Standard Time/EH
Hawaiian Standard Time/TK
Kaliningrad Standard Time/BY
SA Pacific Standard Time/HT
South Africa Standard Time/LY
It also doesn't contain some of the deprecated country codes used in older
OSes, namely:
SP (Serbian, proposed) used in XP
CS (Serbian and Montenegro, dissolved, now RS and ME) used in Vista
While these are apparently old, they are required here to get a complete
mapping on all supported OSes. */
struct
{
PCWSTR win_tzkey;
PCWSTR country;
PCWSTR posix_tzid;
} tzmap[] =
{
{ L"AUS Central Standard Time", L"", L"Australia/Darwin" },
{ L"AUS Central Standard Time", L"AU", L"Australia/Darwin" },
{ L"AUS Eastern Standard Time", L"", L"Australia/Sydney" },
{ L"AUS Eastern Standard Time", L"AU", L"Australia/Sydney Australia/Melbourne" },
{ L"Afghanistan Standard Time", L"", L"Asia/Kabul" },
{ L"Afghanistan Standard Time", L"AF", L"Asia/Kabul" },
{ L"Alaskan Standard Time", L"", L"America/Anchorage" },
{ L"Alaskan Standard Time", L"US", L"America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat" },
{ L"Arab Standard Time", L"", L"Asia/Riyadh" },
{ L"Arab Standard Time", L"BH", L"Asia/Bahrain" },
{ L"Arab Standard Time", L"KW", L"Asia/Kuwait" },
{ L"Arab Standard Time", L"QA", L"Asia/Qatar" },
{ L"Arab Standard Time", L"SA", L"Asia/Riyadh" },
{ L"Arab Standard Time", L"YE", L"Asia/Aden" },
{ L"Arabian Standard Time", L"", L"Asia/Dubai" },
{ L"Arabian Standard Time", L"AE", L"Asia/Dubai" },
{ L"Arabian Standard Time", L"OM", L"Asia/Muscat" },
{ L"Arabian Standard Time", L"ZZ", L"Etc/GMT-4" },
{ L"Arabic Standard Time", L"", L"Asia/Baghdad" },
{ L"Arabic Standard Time", L"IQ", L"Asia/Baghdad" },
{ L"Argentina Standard Time", L"", L"America/Buenos_Aires" },
{ L"Argentina Standard Time", L"AR", L"America/Buenos_Aires America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Catamarca America/Cordoba America/Jujuy America/Mendoza" },
{ L"Armenian Standard Time", L"AM", L"Asia/Yerevan" },
{ L"Atlantic Standard Time", L"", L"America/Halifax" },
{ L"Atlantic Standard Time", L"BM", L"Atlantic/Bermuda" },
{ L"Atlantic Standard Time", L"CA", L"America/Halifax America/Glace_Bay America/Goose_Bay America/Moncton" },
{ L"Atlantic Standard Time", L"GL", L"America/Thule" },
{ L"Azerbaijan Standard Time", L"", L"Asia/Baku" },
{ L"Azerbaijan Standard Time", L"AZ", L"Asia/Baku" },
{ L"Azores Standard Time", L"", L"Atlantic/Azores" },
{ L"Azores Standard Time", L"GL", L"America/Scoresbysund" },
{ L"Azores Standard Time", L"PT", L"Atlantic/Azores" },
{ L"Bahia Standard Time", L"", L"America/Bahia" },
{ L"Bahia Standard Time", L"BR", L"America/Bahia" },
{ L"Bangladesh Standard Time", L"", L"Asia/Dhaka" },
{ L"Bangladesh Standard Time", L"BD", L"Asia/Dhaka" },
{ L"Bangladesh Standard Time", L"BT", L"Asia/Thimphu" },
{ L"Belarus Standard Time", L"", L"Europe/Minsk" },
{ L"Belarus Standard Time", L"BY", L"Europe/Minsk" },
{ L"Canada Central Standard Time", L"", L"America/Regina" },
{ L"Canada Central Standard Time", L"CA", L"America/Regina America/Swift_Current" },
{ L"Cape Verde Standard Time", L"", L"Atlantic/Cape_Verde" },
{ L"Cape Verde Standard Time", L"CV", L"Atlantic/Cape_Verde" },
{ L"Cape Verde Standard Time", L"ZZ", L"Etc/GMT+1" },
{ L"Caucasus Standard Time", L"", L"Asia/Yerevan" },
{ L"Caucasus Standard Time", L"AM", L"Asia/Yerevan" },
{ L"Cen. Australia Standard Time", L"", L"Australia/Adelaide" },
{ L"Cen. Australia Standard Time", L"AU", L"Australia/Adelaide Australia/Broken_Hill" },
{ L"Central America Standard Time", L"", L"America/Guatemala" },
{ L"Central America Standard Time", L"BZ", L"America/Belize" },
{ L"Central America Standard Time", L"CR", L"America/Costa_Rica" },
{ L"Central America Standard Time", L"EC", L"Pacific/Galapagos" },
{ L"Central America Standard Time", L"GT", L"America/Guatemala" },
{ L"Central America Standard Time", L"HN", L"America/Tegucigalpa" },
{ L"Central America Standard Time", L"NI", L"America/Managua" },
{ L"Central America Standard Time", L"SV", L"America/El_Salvador" },
{ L"Central America Standard Time", L"ZZ", L"Etc/GMT+6" },
{ L"Central Asia Standard Time", L"", L"Asia/Almaty" },
{ L"Central Asia Standard Time", L"AQ", L"Antarctica/Vostok" },
{ L"Central Asia Standard Time", L"CN", L"Asia/Urumqi" },
{ L"Central Asia Standard Time", L"IO", L"Indian/Chagos" },
{ L"Central Asia Standard Time", L"KG", L"Asia/Bishkek" },
{ L"Central Asia Standard Time", L"KZ", L"Asia/Almaty Asia/Qyzylorda" },
{ L"Central Asia Standard Time", L"ZZ", L"Etc/GMT-6" },
{ L"Central Brazilian Standard Time", L"", L"America/Cuiaba" },
{ L"Central Brazilian Standard Time", L"BR", L"America/Cuiaba America/Campo_Grande" },
{ L"Central Europe Standard Time", L"", L"Europe/Budapest" },
{ L"Central Europe Standard Time", L"AL", L"Europe/Tirane" },
{ L"Central Europe Standard Time", L"CS", L"Europe/Belgrade" },
{ L"Central Europe Standard Time", L"CZ", L"Europe/Prague" },
{ L"Central Europe Standard Time", L"HU", L"Europe/Budapest" },
{ L"Central Europe Standard Time", L"ME", L"Europe/Podgorica" },
{ L"Central Europe Standard Time", L"RS", L"Europe/Belgrade" },
{ L"Central Europe Standard Time", L"SI", L"Europe/Ljubljana" },
{ L"Central Europe Standard Time", L"SK", L"Europe/Bratislava" },
{ L"Central Europe Standard Time", L"SP", L"Europe/Belgrade" },
{ L"Central European Standard Time", L"", L"Europe/Warsaw" },
{ L"Central European Standard Time", L"BA", L"Europe/Sarajevo" },
{ L"Central European Standard Time", L"HR", L"Europe/Zagreb" },
{ L"Central European Standard Time", L"MK", L"Europe/Skopje" },
{ L"Central European Standard Time", L"PL", L"Europe/Warsaw" },
{ L"Central Pacific Standard Time", L"", L"Pacific/Guadalcanal" },
{ L"Central Pacific Standard Time", L"AU", L"Antarctica/Macquarie" },
{ L"Central Pacific Standard Time", L"FM", L"Pacific/Ponape Pacific/Kosrae" },
{ L"Central Pacific Standard Time", L"NC", L"Pacific/Noumea" },
{ L"Central Pacific Standard Time", L"SB", L"Pacific/Guadalcanal" },
{ L"Central Pacific Standard Time", L"VU", L"Pacific/Efate" },
{ L"Central Pacific Standard Time", L"ZZ", L"Etc/GMT-11" },
{ L"Central Standard Time", L"", L"America/Chicago" },
{ L"Central Standard Time", L"CA", L"America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute" },
{ L"Central Standard Time", L"MX", L"America/Matamoros" },
{ L"Central Standard Time", L"US", L"America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem" },
{ L"Central Standard Time", L"ZZ", L"CST6CDT" },
{ L"Central Standard Time (Mexico)", L"", L"America/Mexico_City" },
{ L"Central Standard Time (Mexico)", L"MX", L"America/Mexico_City America/Bahia_Banderas America/Cancun America/Merida America/Monterrey" },
{ L"China Standard Time", L"", L"Asia/Shanghai" },
{ L"China Standard Time", L"CN", L"Asia/Shanghai" },
{ L"China Standard Time", L"HK", L"Asia/Hong_Kong" },
{ L"China Standard Time", L"MO", L"Asia/Macau" },
{ L"Dateline Standard Time", L"", L"Etc/GMT+12" },
{ L"Dateline Standard Time", L"ZZ", L"Etc/GMT+12" },
{ L"E. Africa Standard Time", L"", L"Africa/Nairobi" },
{ L"E. Africa Standard Time", L"AQ", L"Antarctica/Syowa" },
{ L"E. Africa Standard Time", L"DJ", L"Africa/Djibouti" },
{ L"E. Africa Standard Time", L"ER", L"Africa/Asmera" },
{ L"E. Africa Standard Time", L"ET", L"Africa/Addis_Ababa" },
{ L"E. Africa Standard Time", L"KE", L"Africa/Nairobi" },
{ L"E. Africa Standard Time", L"KM", L"Indian/Comoro" },
{ L"E. Africa Standard Time", L"MG", L"Indian/Antananarivo" },
{ L"E. Africa Standard Time", L"SD", L"Africa/Khartoum" },
{ L"E. Africa Standard Time", L"SO", L"Africa/Mogadishu" },
{ L"E. Africa Standard Time", L"SS", L"Africa/Juba" },
{ L"E. Africa Standard Time", L"TZ", L"Africa/Dar_es_Salaam" },
{ L"E. Africa Standard Time", L"UG", L"Africa/Kampala" },
{ L"E. Africa Standard Time", L"YT", L"Indian/Mayotte" },
{ L"E. Africa Standard Time", L"ZZ", L"Etc/GMT-3" },
{ L"E. Australia Standard Time", L"", L"Australia/Brisbane" },
{ L"E. Australia Standard Time", L"AU", L"Australia/Brisbane Australia/Lindeman" },
{ L"E. Europe Standard Time", L"", L"Asia/Nicosia" },
{ L"E. Europe Standard Time", L"CY", L"Asia/Nicosia" },
{ L"E. South America Standard Time", L"", L"America/Sao_Paulo" },
{ L"E. South America Standard Time", L"BR", L"America/Sao_Paulo" },
{ L"Eastern Standard Time", L"", L"America/New_York" },
{ L"Eastern Standard Time", L"BS", L"America/Nassau" },
{ L"Eastern Standard Time", L"CA", L"America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay" },
{ L"Eastern Standard Time", L"CU", L"America/Havana" },
{ L"Eastern Standard Time", L"HT", L"America/Port-au-Prince" },
{ L"Eastern Standard Time", L"TC", L"America/Grand_Turk" },
{ L"Eastern Standard Time", L"US", L"America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville" },
{ L"Eastern Standard Time", L"ZZ", L"EST5EDT" },
{ L"Egypt Standard Time", L"", L"Africa/Cairo" },
{ L"Egypt Standard Time", L"EG", L"Africa/Cairo" },
{ L"Egypt Standard Time", L"PS", L"Asia/Gaza Asia/Hebron" },
{ L"Ekaterinburg Standard Time", L"", L"Asia/Yekaterinburg" },
{ L"Ekaterinburg Standard Time", L"RU", L"Asia/Yekaterinburg" },
{ L"FLE Standard Time", L"", L"Europe/Kiev" },
{ L"FLE Standard Time", L"AX", L"Europe/Mariehamn" },
{ L"FLE Standard Time", L"BG", L"Europe/Sofia" },
{ L"FLE Standard Time", L"EE", L"Europe/Tallinn" },
{ L"FLE Standard Time", L"FI", L"Europe/Helsinki" },
{ L"FLE Standard Time", L"LT", L"Europe/Vilnius" },
{ L"FLE Standard Time", L"LV", L"Europe/Riga" },
{ L"FLE Standard Time", L"UA", L"Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye" },
{ L"Fiji Standard Time", L"", L"Pacific/Fiji" },
{ L"Fiji Standard Time", L"FJ", L"Pacific/Fiji" },
{ L"GMT Standard Time", L"", L"Europe/London" },
{ L"GMT Standard Time", L"ES", L"Atlantic/Canary" },
{ L"GMT Standard Time", L"FO", L"Atlantic/Faeroe" },
{ L"GMT Standard Time", L"GB", L"Europe/London" },
{ L"GMT Standard Time", L"GG", L"Europe/Guernsey" },
{ L"GMT Standard Time", L"IE", L"Europe/Dublin" },
{ L"GMT Standard Time", L"IM", L"Europe/Isle_of_Man" },
{ L"GMT Standard Time", L"JE", L"Europe/Jersey" },
{ L"GMT Standard Time", L"PT", L"Europe/Lisbon Atlantic/Madeira" },
{ L"GTB Standard Time", L"", L"Europe/Bucharest" },
{ L"GTB Standard Time", L"CY", L"Asia/Nicosia" },
{ L"GTB Standard Time", L"GR", L"Europe/Athens" },
{ L"GTB Standard Time", L"MD", L"Europe/Chisinau" },
{ L"GTB Standard Time", L"RO", L"Europe/Bucharest" },
{ L"Georgian Standard Time", L"", L"Asia/Tbilisi" },
{ L"Georgian Standard Time", L"GE", L"Asia/Tbilisi" },
{ L"Greenland Standard Time", L"", L"America/Godthab" },
{ L"Greenland Standard Time", L"GL", L"America/Godthab" },
{ L"Greenwich Standard Time", L"", L"Atlantic/Reykjavik" },
{ L"Greenwich Standard Time", L"BF", L"Africa/Ouagadougou" },
{ L"Greenwich Standard Time", L"CI", L"Africa/Abidjan" },
{ L"Greenwich Standard Time", L"EH", L"Africa/El_Aaiun" },
{ L"Greenwich Standard Time", L"GH", L"Africa/Accra" },
{ L"Greenwich Standard Time", L"GM", L"Africa/Banjul" },
{ L"Greenwich Standard Time", L"GN", L"Africa/Conakry" },
{ L"Greenwich Standard Time", L"GW", L"Africa/Bissau" },
{ L"Greenwich Standard Time", L"IS", L"Atlantic/Reykjavik" },
{ L"Greenwich Standard Time", L"LR", L"Africa/Monrovia" },
{ L"Greenwich Standard Time", L"ML", L"Africa/Bamako" },
{ L"Greenwich Standard Time", L"MR", L"Africa/Nouakchott" },
{ L"Greenwich Standard Time", L"SH", L"Atlantic/St_Helena" },
{ L"Greenwich Standard Time", L"SL", L"Africa/Freetown" },
{ L"Greenwich Standard Time", L"SN", L"Africa/Dakar" },
{ L"Greenwich Standard Time", L"ST", L"Africa/Sao_Tome" },
{ L"Greenwich Standard Time", L"TG", L"Africa/Lome" },
{ L"Hawaiian Standard Time", L"", L"Pacific/Honolulu" },
{ L"Hawaiian Standard Time", L"CK", L"Pacific/Rarotonga" },
{ L"Hawaiian Standard Time", L"PF", L"Pacific/Tahiti" },
{ L"Hawaiian Standard Time", L"TK", L"Pacific/Fakaofo" },
{ L"Hawaiian Standard Time", L"UM", L"Pacific/Johnston" },
{ L"Hawaiian Standard Time", L"US", L"Pacific/Honolulu" },
{ L"Hawaiian Standard Time", L"ZZ", L"Etc/GMT+10" },
{ L"India Standard Time", L"", L"Asia/Calcutta" },
{ L"India Standard Time", L"IN", L"Asia/Calcutta" },
{ L"Iran Standard Time", L"", L"Asia/Tehran" },
{ L"Iran Standard Time", L"IR", L"Asia/Tehran" },
{ L"Israel Standard Time", L"", L"Asia/Jerusalem" },
{ L"Israel Standard Time", L"IL", L"Asia/Jerusalem" },
{ L"Jordan Standard Time", L"", L"Asia/Amman" },
{ L"Jordan Standard Time", L"JO", L"Asia/Amman" },
{ L"Kaliningrad Standard Time", L"", L"Europe/Kaliningrad" },
{ L"Kaliningrad Standard Time", L"BY", L"Europe/Minsk" },
{ L"Kaliningrad Standard Time", L"RU", L"Europe/Kaliningrad" },
{ L"Kamchatka Standard Time", L"", L"Asia/Kamchatka" },
{ L"Korea Standard Time", L"", L"Asia/Seoul" },
{ L"Korea Standard Time", L"KP", L"Asia/Pyongyang" },
{ L"Korea Standard Time", L"KR", L"Asia/Seoul" },
{ L"Libya Standard Time", L"", L"Africa/Tripoli" },
{ L"Libya Standard Time", L"LY", L"Africa/Tripoli" },
{ L"Line Islands Standard Time", L"", L"Pacific/Kiritimati" },
{ L"Line Islands Standard Time", L"KI", L"Pacific/Kiritimati" },
{ L"Line Islands Standard Time", L"ZZ", L"Etc/GMT-14" },
{ L"Magadan Standard Time", L"", L"Asia/Magadan" },
{ L"Magadan Standard Time", L"RU", L"Asia/Magadan" },
{ L"Mauritius Standard Time", L"", L"Indian/Mauritius" },
{ L"Mauritius Standard Time", L"MU", L"Indian/Mauritius" },
{ L"Mauritius Standard Time", L"RE", L"Indian/Reunion" },
{ L"Mauritius Standard Time", L"SC", L"Indian/Mahe" },
{ L"Mexico Standard Time 2", L"", L"America/Mazatlan" },
{ L"Mexico Standard Time", L"", L"America/Mexico_City" },
{ L"Mid-Atlantic Standard Time", L"", L"Atlantic/South_Georgia" },
{ L"Middle East Standard Time", L"", L"Asia/Beirut" },
{ L"Middle East Standard Time", L"LB", L"Asia/Beirut" },
{ L"Montevideo Standard Time", L"", L"America/Montevideo" },
{ L"Montevideo Standard Time", L"UY", L"America/Montevideo" },
{ L"Morocco Standard Time", L"", L"Africa/Casablanca" },
{ L"Morocco Standard Time", L"EH", L"Africa/El_Aaiun" },
{ L"Morocco Standard Time", L"MA", L"Africa/Casablanca" },
{ L"Mountain Standard Time", L"", L"America/Denver" },
{ L"Mountain Standard Time", L"CA", L"America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife" },
{ L"Mountain Standard Time", L"MX", L"America/Ojinaga" },
{ L"Mountain Standard Time", L"US", L"America/Denver America/Boise" },
{ L"Mountain Standard Time", L"ZZ", L"MST7MDT" },
{ L"Mountain Standard Time (Mexico)", L"", L"America/Chihuahua" },
{ L"Mountain Standard Time (Mexico)", L"MX", L"America/Chihuahua America/Mazatlan" },
{ L"Myanmar Standard Time", L"", L"Asia/Rangoon" },
{ L"Myanmar Standard Time", L"CC", L"Indian/Cocos" },
{ L"Myanmar Standard Time", L"MM", L"Asia/Rangoon" },
{ L"N. Central Asia Standard Time", L"", L"Asia/Novosibirsk" },
{ L"N. Central Asia Standard Time", L"RU", L"Asia/Novosibirsk Asia/Omsk" },
{ L"Namibia Standard Time", L"", L"Africa/Windhoek" },
{ L"Namibia Standard Time", L"NA", L"Africa/Windhoek" },
{ L"Nepal Standard Time", L"", L"Asia/Katmandu" },
{ L"Nepal Standard Time", L"NP", L"Asia/Katmandu" },
{ L"New Zealand Standard Time", L"", L"Pacific/Auckland" },
{ L"New Zealand Standard Time", L"AQ", L"Antarctica/McMurdo" },
{ L"New Zealand Standard Time", L"NZ", L"Pacific/Auckland" },
{ L"Newfoundland Standard Time", L"", L"America/St_Johns" },
{ L"Newfoundland Standard Time", L"CA", L"America/St_Johns" },
{ L"North Asia East Standard Time", L"", L"Asia/Irkutsk" },
{ L"North Asia East Standard Time", L"RU", L"Asia/Irkutsk Asia/Chita" },
{ L"North Asia Standard Time", L"", L"Asia/Krasnoyarsk" },
{ L"North Asia Standard Time", L"RU", L"Asia/Krasnoyarsk Asia/Novokuznetsk" },
{ L"Pacific SA Standard Time", L"", L"America/Santiago" },
{ L"Pacific SA Standard Time", L"AQ", L"Antarctica/Palmer" },
{ L"Pacific SA Standard Time", L"CL", L"America/Santiago" },
{ L"Pacific Standard Time", L"", L"America/Los_Angeles" },
{ L"Pacific Standard Time", L"CA", L"America/Vancouver America/Dawson America/Whitehorse" },
{ L"Pacific Standard Time", L"MX", L"America/Tijuana" },
{ L"Pacific Standard Time", L"US", L"America/Los_Angeles" },
{ L"Pacific Standard Time", L"ZZ", L"PST8PDT" },
{ L"Pacific Standard Time (Mexico)", L"", L"America/Santa_Isabel" },
{ L"Pacific Standard Time (Mexico)", L"MX", L"America/Santa_Isabel" },
{ L"Pakistan Standard Time", L"", L"Asia/Karachi" },
{ L"Pakistan Standard Time", L"PK", L"Asia/Karachi" },
{ L"Paraguay Standard Time", L"", L"America/Asuncion" },
{ L"Paraguay Standard Time", L"PY", L"America/Asuncion" },
{ L"Romance Standard Time", L"", L"Europe/Paris" },
{ L"Romance Standard Time", L"BE", L"Europe/Brussels" },
{ L"Romance Standard Time", L"DK", L"Europe/Copenhagen" },
{ L"Romance Standard Time", L"ES", L"Europe/Madrid Africa/Ceuta" },
{ L"Romance Standard Time", L"FR", L"Europe/Paris" },
{ L"Russia Time Zone 10", L"", L"Asia/Srednekolymsk" },
{ L"Russia Time Zone 10", L"RU", L"Asia/Srednekolymsk" },
{ L"Russia Time Zone 11", L"", L"Asia/Kamchatka" },
{ L"Russia Time Zone 11", L"RU", L"Asia/Kamchatka Asia/Anadyr" },
{ L"Russia Time Zone 3", L"", L"Europe/Samara" },
{ L"Russia Time Zone 3", L"RU", L"Europe/Samara" },
{ L"Russian Standard Time", L"", L"Europe/Moscow" },
{ L"Russian Standard Time", L"RU", L"Europe/Moscow Europe/Simferopol Europe/Volgograd" },
{ L"SA Eastern Standard Time", L"", L"America/Cayenne" },
{ L"SA Eastern Standard Time", L"AQ", L"Antarctica/Rothera" },
{ L"SA Eastern Standard Time", L"BR", L"America/Fortaleza America/Araguaina America/Belem America/Maceio America/Recife America/Santarem" },
{ L"SA Eastern Standard Time", L"FK", L"Atlantic/Stanley" },
{ L"SA Eastern Standard Time", L"GF", L"America/Cayenne" },
{ L"SA Eastern Standard Time", L"SR", L"America/Paramaribo" },
{ L"SA Eastern Standard Time", L"ZZ", L"Etc/GMT+3" },
{ L"SA Pacific Standard Time", L"", L"America/Bogota" },
{ L"SA Pacific Standard Time", L"BR", L"America/Rio_Branco America/Eirunepe" },
{ L"SA Pacific Standard Time", L"CA", L"America/Coral_Harbour" },
{ L"SA Pacific Standard Time", L"CO", L"America/Bogota" },
{ L"SA Pacific Standard Time", L"EC", L"America/Guayaquil" },
{ L"SA Pacific Standard Time", L"HT", L"America/Port-au-Prince" },
{ L"SA Pacific Standard Time", L"JM", L"America/Jamaica" },
{ L"SA Pacific Standard Time", L"KY", L"America/Cayman" },
{ L"SA Pacific Standard Time", L"PA", L"America/Panama" },
{ L"SA Pacific Standard Time", L"PE", L"America/Lima" },
{ L"SA Pacific Standard Time", L"ZZ", L"Etc/GMT+5" },
{ L"SA Western Standard Time", L"", L"America/La_Paz" },
{ L"SA Western Standard Time", L"AG", L"America/Antigua" },
{ L"SA Western Standard Time", L"AI", L"America/Anguilla" },
{ L"SA Western Standard Time", L"AW", L"America/Aruba" },
{ L"SA Western Standard Time", L"BB", L"America/Barbados" },
{ L"SA Western Standard Time", L"BL", L"America/St_Barthelemy" },
{ L"SA Western Standard Time", L"BO", L"America/La_Paz" },
{ L"SA Western Standard Time", L"BQ", L"America/Kralendijk" },
{ L"SA Western Standard Time", L"BR", L"America/Manaus America/Boa_Vista America/Porto_Velho" },
{ L"SA Western Standard Time", L"CA", L"America/Blanc-Sablon" },
{ L"SA Western Standard Time", L"CW", L"America/Curacao" },
{ L"SA Western Standard Time", L"DM", L"America/Dominica" },
{ L"SA Western Standard Time", L"DO", L"America/Santo_Domingo" },
{ L"SA Western Standard Time", L"GD", L"America/Grenada" },
{ L"SA Western Standard Time", L"GP", L"America/Guadeloupe" },
{ L"SA Western Standard Time", L"GY", L"America/Guyana" },
{ L"SA Western Standard Time", L"KN", L"America/St_Kitts" },
{ L"SA Western Standard Time", L"LC", L"America/St_Lucia" },
{ L"SA Western Standard Time", L"MF", L"America/Marigot" },
{ L"SA Western Standard Time", L"MQ", L"America/Martinique" },
{ L"SA Western Standard Time", L"MS", L"America/Montserrat" },
{ L"SA Western Standard Time", L"PR", L"America/Puerto_Rico" },
{ L"SA Western Standard Time", L"SX", L"America/Lower_Princes" },
{ L"SA Western Standard Time", L"TC", L"America/Grand_Turk" },
{ L"SA Western Standard Time", L"TT", L"America/Port_of_Spain" },
{ L"SA Western Standard Time", L"VC", L"America/St_Vincent" },
{ L"SA Western Standard Time", L"VG", L"America/Tortola" },
{ L"SA Western Standard Time", L"VI", L"America/St_Thomas" },
{ L"SA Western Standard Time", L"ZZ", L"Etc/GMT+4" },
{ L"SE Asia Standard Time", L"", L"Asia/Bangkok" },
{ L"SE Asia Standard Time", L"AQ", L"Antarctica/Davis" },
{ L"SE Asia Standard Time", L"CX", L"Indian/Christmas" },
{ L"SE Asia Standard Time", L"ID", L"Asia/Jakarta Asia/Pontianak" },
{ L"SE Asia Standard Time", L"KH", L"Asia/Phnom_Penh" },
{ L"SE Asia Standard Time", L"LA", L"Asia/Vientiane" },
{ L"SE Asia Standard Time", L"MN", L"Asia/Hovd" },
{ L"SE Asia Standard Time", L"TH", L"Asia/Bangkok" },
{ L"SE Asia Standard Time", L"VN", L"Asia/Saigon" },
{ L"SE Asia Standard Time", L"ZZ", L"Etc/GMT-7" },
{ L"Samoa Standard Time", L"", L"Pacific/Apia" },
{ L"Samoa Standard Time", L"WS", L"Pacific/Apia" },
{ L"Singapore Standard Time", L"", L"Asia/Singapore" },
{ L"Singapore Standard Time", L"BN", L"Asia/Brunei" },
{ L"Singapore Standard Time", L"ID", L"Asia/Makassar" },
{ L"Singapore Standard Time", L"MY", L"Asia/Kuala_Lumpur Asia/Kuching" },
{ L"Singapore Standard Time", L"PH", L"Asia/Manila" },
{ L"Singapore Standard Time", L"SG", L"Asia/Singapore" },
{ L"Singapore Standard Time", L"ZZ", L"Etc/GMT-8" },
{ L"South Africa Standard Time", L"", L"Africa/Johannesburg" },
{ L"South Africa Standard Time", L"BI", L"Africa/Bujumbura" },
{ L"South Africa Standard Time", L"BW", L"Africa/Gaborone" },
{ L"South Africa Standard Time", L"CD", L"Africa/Lubumbashi" },
{ L"South Africa Standard Time", L"LS", L"Africa/Maseru" },
{ L"South Africa Standard Time", L"LY", L"Africa/Tripoli" },
{ L"South Africa Standard Time", L"MW", L"Africa/Blantyre" },
{ L"South Africa Standard Time", L"MZ", L"Africa/Maputo" },
{ L"South Africa Standard Time", L"RW", L"Africa/Kigali" },
{ L"South Africa Standard Time", L"SZ", L"Africa/Mbabane" },
{ L"South Africa Standard Time", L"ZA", L"Africa/Johannesburg" },
{ L"South Africa Standard Time", L"ZM", L"Africa/Lusaka" },
{ L"South Africa Standard Time", L"ZW", L"Africa/Harare" },
{ L"South Africa Standard Time", L"ZZ", L"Etc/GMT-2" },
{ L"Sri Lanka Standard Time", L"", L"Asia/Colombo" },
{ L"Sri Lanka Standard Time", L"LK", L"Asia/Colombo" },
{ L"Syria Standard Time", L"", L"Asia/Damascus" },
{ L"Syria Standard Time", L"SY", L"Asia/Damascus" },
{ L"Taipei Standard Time", L"", L"Asia/Taipei" },
{ L"Taipei Standard Time", L"TW", L"Asia/Taipei" },
{ L"Tasmania Standard Time", L"", L"Australia/Hobart" },
{ L"Tasmania Standard Time", L"AU", L"Australia/Hobart Australia/Currie" },
{ L"Tokyo Standard Time", L"", L"Asia/Tokyo" },
{ L"Tokyo Standard Time", L"ID", L"Asia/Jayapura" },
{ L"Tokyo Standard Time", L"JP", L"Asia/Tokyo" },
{ L"Tokyo Standard Time", L"PW", L"Pacific/Palau" },
{ L"Tokyo Standard Time", L"TL", L"Asia/Dili" },
{ L"Tokyo Standard Time", L"ZZ", L"Etc/GMT-9" },
{ L"Tonga Standard Time", L"", L"Pacific/Tongatapu" },
{ L"Tonga Standard Time", L"KI", L"Pacific/Enderbury" },
{ L"Tonga Standard Time", L"TK", L"Pacific/Fakaofo" },
{ L"Tonga Standard Time", L"TO", L"Pacific/Tongatapu" },
{ L"Tonga Standard Time", L"ZZ", L"Etc/GMT-13" },
{ L"Turkey Standard Time", L"", L"Europe/Istanbul" },
{ L"Turkey Standard Time", L"TR", L"Europe/Istanbul" },
{ L"US Eastern Standard Time", L"", L"America/Indianapolis" },
{ L"US Eastern Standard Time", L"US", L"America/Indianapolis America/Indiana/Marengo America/Indiana/Vevay" },
{ L"US Mountain Standard Time", L"", L"America/Phoenix" },
{ L"US Mountain Standard Time", L"CA", L"America/Dawson_Creek America/Creston" },
{ L"US Mountain Standard Time", L"MX", L"America/Hermosillo" },
{ L"US Mountain Standard Time", L"US", L"America/Phoenix" },
{ L"US Mountain Standard Time", L"ZZ", L"Etc/GMT+7" },
{ L"UTC", L"", L"Etc/GMT" },
{ L"UTC", L"GL", L"America/Danmarkshavn" },
{ L"UTC", L"ZZ", L"Etc/GMT" },
{ L"UTC-02", L"", L"Etc/GMT+2" },
{ L"UTC-02", L"BR", L"America/Noronha" },
{ L"UTC-02", L"GS", L"Atlantic/South_Georgia" },
{ L"UTC-02", L"ZZ", L"Etc/GMT+2" },
{ L"UTC-11", L"", L"Etc/GMT+11" },
{ L"UTC-11", L"AS", L"Pacific/Pago_Pago" },
{ L"UTC-11", L"NU", L"Pacific/Niue" },
{ L"UTC-11", L"UM", L"Pacific/Midway" },
{ L"UTC-11", L"ZZ", L"Etc/GMT+11" },
{ L"UTC+12", L"", L"Etc/GMT-12" },
{ L"UTC+12", L"KI", L"Pacific/Tarawa" },
{ L"UTC+12", L"MH", L"Pacific/Majuro Pacific/Kwajalein" },
{ L"UTC+12", L"NR", L"Pacific/Nauru" },
{ L"UTC+12", L"TV", L"Pacific/Funafuti" },
{ L"UTC+12", L"UM", L"Pacific/Wake" },
{ L"UTC+12", L"WF", L"Pacific/Wallis" },
{ L"UTC+12", L"ZZ", L"Etc/GMT-12" },
{ L"Ulaanbaatar Standard Time", L"", L"Asia/Ulaanbaatar" },
{ L"Ulaanbaatar Standard Time", L"MN", L"Asia/Ulaanbaatar Asia/Choibalsan" },
{ L"Venezuela Standard Time", L"", L"America/Caracas" },
{ L"Venezuela Standard Time", L"VE", L"America/Caracas" },
{ L"Vladivostok Standard Time", L"", L"Asia/Vladivostok" },
{ L"Vladivostok Standard Time", L"RU", L"Asia/Vladivostok Asia/Sakhalin Asia/Ust-Nera" },
{ L"W. Australia Standard Time", L"", L"Australia/Perth" },
{ L"W. Australia Standard Time", L"AQ", L"Antarctica/Casey" },
{ L"W. Australia Standard Time", L"AU", L"Australia/Perth" },
{ L"W. Central Africa Standard Time", L"", L"Africa/Lagos" },
{ L"W. Central Africa Standard Time", L"AO", L"Africa/Luanda" },
{ L"W. Central Africa Standard Time", L"BJ", L"Africa/Porto-Novo" },
{ L"W. Central Africa Standard Time", L"CD", L"Africa/Kinshasa" },
{ L"W. Central Africa Standard Time", L"CF", L"Africa/Bangui" },
{ L"W. Central Africa Standard Time", L"CG", L"Africa/Brazzaville" },
{ L"W. Central Africa Standard Time", L"CM", L"Africa/Douala" },
{ L"W. Central Africa Standard Time", L"DZ", L"Africa/Algiers" },
{ L"W. Central Africa Standard Time", L"GA", L"Africa/Libreville" },
{ L"W. Central Africa Standard Time", L"GQ", L"Africa/Malabo" },
{ L"W. Central Africa Standard Time", L"NE", L"Africa/Niamey" },
{ L"W. Central Africa Standard Time", L"NG", L"Africa/Lagos" },
{ L"W. Central Africa Standard Time", L"TD", L"Africa/Ndjamena" },
{ L"W. Central Africa Standard Time", L"TN", L"Africa/Tunis" },
{ L"W. Central Africa Standard Time", L"ZZ", L"Etc/GMT-1" },
{ L"W. Europe Standard Time", L"", L"Europe/Berlin" },
{ L"W. Europe Standard Time", L"AD", L"Europe/Andorra" },
{ L"W. Europe Standard Time", L"AT", L"Europe/Vienna" },
{ L"W. Europe Standard Time", L"CH", L"Europe/Zurich" },
{ L"W. Europe Standard Time", L"DE", L"Europe/Berlin Europe/Busingen" },
{ L"W. Europe Standard Time", L"GI", L"Europe/Gibraltar" },
{ L"W. Europe Standard Time", L"IT", L"Europe/Rome" },
{ L"W. Europe Standard Time", L"LI", L"Europe/Vaduz" },
{ L"W. Europe Standard Time", L"LU", L"Europe/Luxembourg" },
{ L"W. Europe Standard Time", L"MC", L"Europe/Monaco" },
{ L"W. Europe Standard Time", L"MT", L"Europe/Malta" },
{ L"W. Europe Standard Time", L"NL", L"Europe/Amsterdam" },
{ L"W. Europe Standard Time", L"NO", L"Europe/Oslo" },
{ L"W. Europe Standard Time", L"SE", L"Europe/Stockholm" },
{ L"W. Europe Standard Time", L"SJ", L"Arctic/Longyearbyen" },
{ L"W. Europe Standard Time", L"SM", L"Europe/San_Marino" },
{ L"W. Europe Standard Time", L"VA", L"Europe/Vatican" },
{ L"West Asia Standard Time", L"", L"Asia/Tashkent" },
{ L"West Asia Standard Time", L"AQ", L"Antarctica/Mawson" },
{ L"West Asia Standard Time", L"KZ", L"Asia/Oral Asia/Aqtau Asia/Aqtobe" },
{ L"West Asia Standard Time", L"MV", L"Indian/Maldives" },
{ L"West Asia Standard Time", L"TF", L"Indian/Kerguelen" },
{ L"West Asia Standard Time", L"TJ", L"Asia/Dushanbe" },
{ L"West Asia Standard Time", L"TM", L"Asia/Ashgabat" },
{ L"West Asia Standard Time", L"UZ", L"Asia/Tashkent Asia/Samarkand" },
{ L"West Asia Standard Time", L"ZZ", L"Etc/GMT-5" },
{ L"West Pacific Standard Time", L"", L"Pacific/Port_Moresby" },
{ L"West Pacific Standard Time", L"AQ", L"Antarctica/DumontDUrville" },
{ L"West Pacific Standard Time", L"FM", L"Pacific/Truk" },
{ L"West Pacific Standard Time", L"GU", L"Pacific/Guam" },
{ L"West Pacific Standard Time", L"MP", L"Pacific/Saipan" },
{ L"West Pacific Standard Time", L"PG", L"Pacific/Port_Moresby Pacific/Bougainville" },
{ L"West Pacific Standard Time", L"ZZ", L"Etc/GMT-10" },
{ L"Yakutsk Standard Time", L"", L"Asia/Yakutsk" },
{ L"Yakutsk Standard Time", L"RU", L"Asia/Yakutsk Asia/Khandyga" },
};

View File

@ -1,6 +1,6 @@
/* tzset.c: Convert current Windows timezone to POSIX timezone information.
Copyright 2012, 2013 Red Hat, Inc.
Copyright 2012, 2013, 2014 Red Hat, Inc.
This file is part of Cygwin.
@ -21,475 +21,10 @@ details. */
#define GEOID_NOT_AVAILABLE -1
#endif
/* This table maps Windows timezone keynames and countries per ISO 3166-1 to
POSIX-compatible timezone IDs. The information is taken from
http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html
The mapping from unicode.org is just a bit incomplete. It doesn't contain
a few timezones available on Windows XP, namely:
Armenian Standard Time
Mexico Standard Time
Mexico Standard Time 2
as well as the still (Windows 7) available
Mid-Atlantic Standard Time
It also doesn't contain some of the deprecated country codes used in older
OSes, namely:
SP (Serbian, proposed) used in XP
CS (Serbian and Montenegro, dissolved, now RS and ME) used in Vista
While these are apparently old, they are required here to get a complete
mapping on all supported OSes. */
struct
{
PCWSTR win_tzkey;
PCWSTR country;
PCWSTR posix_tzid;
} tzmap[] =
{
{ L"AUS Central Standard Time", L"", L"Australia/Darwin" },
{ L"AUS Central Standard Time", L"AU", L"Australia/Darwin" },
{ L"AUS Eastern Standard Time", L"", L"Australia/Sydney" },
{ L"AUS Eastern Standard Time", L"AU", L"Australia/Sydney Australia/Melbourne" },
{ L"Afghanistan Standard Time", L"", L"Asia/Kabul" },
{ L"Afghanistan Standard Time", L"AF", L"Asia/Kabul" },
{ L"Alaskan Standard Time", L"", L"America/Anchorage" },
{ L"Alaskan Standard Time", L"US", L"America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat" },
{ L"Arab Standard Time", L"", L"Asia/Riyadh" },
{ L"Arab Standard Time", L"BH", L"Asia/Bahrain" },
{ L"Arab Standard Time", L"KW", L"Asia/Kuwait" },
{ L"Arab Standard Time", L"QA", L"Asia/Qatar" },
{ L"Arab Standard Time", L"SA", L"Asia/Riyadh" },
{ L"Arab Standard Time", L"YE", L"Asia/Aden" },
{ L"Arabian Standard Time", L"", L"Asia/Dubai" },
{ L"Arabian Standard Time", L"AE", L"Asia/Dubai" },
{ L"Arabian Standard Time", L"OM", L"Asia/Muscat" },
{ L"Arabian Standard Time", L"ZZ", L"Etc/GMT-4" },
{ L"Arabic Standard Time", L"", L"Asia/Baghdad" },
{ L"Arabic Standard Time", L"IQ", L"Asia/Baghdad" },
{ L"Argentina Standard Time", L"", L"America/Buenos_Aires" },
{ L"Argentina Standard Time", L"AR", L"America/Buenos_Aires America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Catamarca America/Cordoba America/Jujuy America/Mendoza" },
{ L"Armenian Standard Time", L"AM", L"Asia/Yerevan" },
{ L"Atlantic Standard Time", L"", L"America/Halifax" },
{ L"Atlantic Standard Time", L"BM", L"Atlantic/Bermuda" },
{ L"Atlantic Standard Time", L"CA", L"America/Halifax America/Glace_Bay America/Goose_Bay America/Moncton" },
{ L"Atlantic Standard Time", L"GL", L"America/Thule" },
{ L"Azerbaijan Standard Time", L"", L"Asia/Baku" },
{ L"Azerbaijan Standard Time", L"AZ", L"Asia/Baku" },
{ L"Azores Standard Time", L"", L"Atlantic/Azores" },
{ L"Azores Standard Time", L"GL", L"America/Scoresbysund" },
{ L"Azores Standard Time", L"PT", L"Atlantic/Azores" },
{ L"Bahia Standard Time", L"", L"America/Bahia" },
{ L"Bahia Standard Time", L"BR", L"America/Bahia" },
{ L"Bangladesh Standard Time", L"", L"Asia/Dhaka" },
{ L"Bangladesh Standard Time", L"BD", L"Asia/Dhaka" },
{ L"Bangladesh Standard Time", L"BT", L"Asia/Thimphu" },
{ L"Canada Central Standard Time", L"", L"America/Regina" },
{ L"Canada Central Standard Time", L"CA", L"America/Regina America/Swift_Current" },
{ L"Cape Verde Standard Time", L"", L"Atlantic/Cape_Verde" },
{ L"Cape Verde Standard Time", L"CV", L"Atlantic/Cape_Verde" },
{ L"Cape Verde Standard Time", L"ZZ", L"Etc/GMT+1" },
{ L"Caucasus Standard Time", L"", L"Asia/Yerevan" },
{ L"Caucasus Standard Time", L"AM", L"Asia/Yerevan" },
{ L"Cen. Australia Standard Time", L"", L"Australia/Adelaide" },
{ L"Cen. Australia Standard Time", L"AU", L"Australia/Adelaide Australia/Broken_Hill" },
{ L"Central America Standard Time", L"", L"America/Guatemala" },
{ L"Central America Standard Time", L"BZ", L"America/Belize" },
{ L"Central America Standard Time", L"CR", L"America/Costa_Rica" },
{ L"Central America Standard Time", L"EC", L"Pacific/Galapagos" },
{ L"Central America Standard Time", L"GT", L"America/Guatemala" },
{ L"Central America Standard Time", L"HN", L"America/Tegucigalpa" },
{ L"Central America Standard Time", L"NI", L"America/Managua" },
{ L"Central America Standard Time", L"SV", L"America/El_Salvador" },
{ L"Central America Standard Time", L"ZZ", L"Etc/GMT+6" },
{ L"Central Asia Standard Time", L"", L"Asia/Almaty" },
{ L"Central Asia Standard Time", L"AQ", L"Antarctica/Vostok" },
{ L"Central Asia Standard Time", L"IO", L"Indian/Chagos" },
{ L"Central Asia Standard Time", L"KG", L"Asia/Bishkek" },
{ L"Central Asia Standard Time", L"KZ", L"Asia/Almaty Asia/Qyzylorda" },
{ L"Central Asia Standard Time", L"ZZ", L"Etc/GMT-6" },
{ L"Central Brazilian Standard Time", L"", L"America/Cuiaba" },
{ L"Central Brazilian Standard Time", L"BR", L"America/Cuiaba America/Campo_Grande" },
{ L"Central Europe Standard Time", L"", L"Europe/Budapest" },
{ L"Central Europe Standard Time", L"AL", L"Europe/Tirane" },
{ L"Central Europe Standard Time", L"CS", L"Europe/Belgrade" },
{ L"Central Europe Standard Time", L"CZ", L"Europe/Prague" },
{ L"Central Europe Standard Time", L"HU", L"Europe/Budapest" },
{ L"Central Europe Standard Time", L"ME", L"Europe/Podgorica" },
{ L"Central Europe Standard Time", L"RS", L"Europe/Belgrade" },
{ L"Central Europe Standard Time", L"SI", L"Europe/Ljubljana" },
{ L"Central Europe Standard Time", L"SK", L"Europe/Bratislava" },
{ L"Central Europe Standard Time", L"SP", L"Europe/Belgrade" },
{ L"Central European Standard Time", L"", L"Europe/Warsaw" },
{ L"Central European Standard Time", L"BA", L"Europe/Sarajevo" },
{ L"Central European Standard Time", L"HR", L"Europe/Zagreb" },
{ L"Central European Standard Time", L"MK", L"Europe/Skopje" },
{ L"Central European Standard Time", L"PL", L"Europe/Warsaw" },
{ L"Central Pacific Standard Time", L"", L"Pacific/Guadalcanal" },
{ L"Central Pacific Standard Time", L"AQ", L"Antarctica/Macquarie" },
{ L"Central Pacific Standard Time", L"FM", L"Pacific/Ponape Pacific/Kosrae" },
{ L"Central Pacific Standard Time", L"NC", L"Pacific/Noumea" },
{ L"Central Pacific Standard Time", L"SB", L"Pacific/Guadalcanal" },
{ L"Central Pacific Standard Time", L"VU", L"Pacific/Efate" },
{ L"Central Pacific Standard Time", L"ZZ", L"Etc/GMT-11" },
{ L"Central Standard Time", L"", L"America/Chicago" },
{ L"Central Standard Time", L"CA", L"America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute" },
{ L"Central Standard Time", L"MX", L"America/Matamoros" },
{ L"Central Standard Time", L"US", L"America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem" },
{ L"Central Standard Time", L"ZZ", L"CST6CDT" },
{ L"Central Standard Time (Mexico)", L"", L"America/Mexico_City" },
{ L"Central Standard Time (Mexico)", L"MX", L"America/Mexico_City America/Bahia_Banderas America/Cancun America/Merida America/Monterrey" },
{ L"China Standard Time", L"", L"Asia/Shanghai" },
{ L"China Standard Time", L"CN", L"Asia/Shanghai Asia/Chongqing Asia/Harbin Asia/Kashgar Asia/Urumqi" },
{ L"China Standard Time", L"HK", L"Asia/Hong_Kong" },
{ L"China Standard Time", L"MO", L"Asia/Macau" },
{ L"Dateline Standard Time", L"", L"Etc/GMT+12" },
{ L"Dateline Standard Time", L"ZZ", L"Etc/GMT+12" },
{ L"E. Africa Standard Time", L"", L"Africa/Nairobi" },
{ L"E. Africa Standard Time", L"AQ", L"Antarctica/Syowa" },
{ L"E. Africa Standard Time", L"DJ", L"Africa/Djibouti" },
{ L"E. Africa Standard Time", L"ER", L"Africa/Asmera" },
{ L"E. Africa Standard Time", L"ET", L"Africa/Addis_Ababa" },
{ L"E. Africa Standard Time", L"KE", L"Africa/Nairobi" },
{ L"E. Africa Standard Time", L"KM", L"Indian/Comoro" },
{ L"E. Africa Standard Time", L"MG", L"Indian/Antananarivo" },
{ L"E. Africa Standard Time", L"SD", L"Africa/Khartoum" },
{ L"E. Africa Standard Time", L"SO", L"Africa/Mogadishu" },
{ L"E. Africa Standard Time", L"SS", L"Africa/Juba" },
{ L"E. Africa Standard Time", L"TZ", L"Africa/Dar_es_Salaam" },
{ L"E. Africa Standard Time", L"UG", L"Africa/Kampala" },
{ L"E. Africa Standard Time", L"YT", L"Indian/Mayotte" },
{ L"E. Africa Standard Time", L"ZZ", L"Etc/GMT-3" },
{ L"E. Australia Standard Time", L"", L"Australia/Brisbane" },
{ L"E. Australia Standard Time", L"AU", L"Australia/Brisbane Australia/Lindeman" },
{ L"E. Europe Standard Time", L"", L"Asia/Nicosia" },
{ L"E. Europe Standard Time", L"CY", L"Asia/Nicosia" },
{ L"E. South America Standard Time", L"", L"America/Sao_Paulo" },
{ L"E. South America Standard Time", L"BR", L"America/Sao_Paulo" },
{ L"Eastern Standard Time", L"", L"America/New_York" },
{ L"Eastern Standard Time", L"BS", L"America/Nassau" },
{ L"Eastern Standard Time", L"CA", L"America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay" },
{ L"Eastern Standard Time", L"TC", L"America/Grand_Turk" },
{ L"Eastern Standard Time", L"US", L"America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville" },
{ L"Eastern Standard Time", L"ZZ", L"EST5EDT" },
{ L"Egypt Standard Time", L"", L"Africa/Cairo" },
{ L"Egypt Standard Time", L"EG", L"Africa/Cairo" },
{ L"Egypt Standard Time", L"PS", L"Asia/Gaza Asia/Hebron" },
{ L"Ekaterinburg Standard Time", L"", L"Asia/Yekaterinburg" },
{ L"Ekaterinburg Standard Time", L"RU", L"Asia/Yekaterinburg" },
{ L"FLE Standard Time", L"", L"Europe/Kiev" },
{ L"FLE Standard Time", L"AX", L"Europe/Mariehamn" },
{ L"FLE Standard Time", L"BG", L"Europe/Sofia" },
{ L"FLE Standard Time", L"EE", L"Europe/Tallinn" },
{ L"FLE Standard Time", L"FI", L"Europe/Helsinki" },
{ L"FLE Standard Time", L"LT", L"Europe/Vilnius" },
{ L"FLE Standard Time", L"LV", L"Europe/Riga" },
{ L"FLE Standard Time", L"UA", L"Europe/Kiev Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye" },
{ L"Fiji Standard Time", L"", L"Pacific/Fiji" },
{ L"Fiji Standard Time", L"FJ", L"Pacific/Fiji" },
{ L"GMT Standard Time", L"", L"Europe/London" },
{ L"GMT Standard Time", L"ES", L"Atlantic/Canary" },
{ L"GMT Standard Time", L"FO", L"Atlantic/Faeroe" },
{ L"GMT Standard Time", L"GB", L"Europe/London" },
{ L"GMT Standard Time", L"GG", L"Europe/Guernsey" },
{ L"GMT Standard Time", L"IE", L"Europe/Dublin" },
{ L"GMT Standard Time", L"IM", L"Europe/Isle_of_Man" },
{ L"GMT Standard Time", L"JE", L"Europe/Jersey" },
{ L"GMT Standard Time", L"PT", L"Europe/Lisbon Atlantic/Madeira" },
{ L"GTB Standard Time", L"", L"Europe/Bucharest" },
{ L"GTB Standard Time", L"GR", L"Europe/Athens" },
{ L"GTB Standard Time", L"MD", L"Europe/Chisinau" },
{ L"GTB Standard Time", L"RO", L"Europe/Bucharest" },
{ L"Georgian Standard Time", L"", L"Asia/Tbilisi" },
{ L"Georgian Standard Time", L"GE", L"Asia/Tbilisi" },
{ L"Greenland Standard Time", L"", L"America/Godthab" },
{ L"Greenland Standard Time", L"GL", L"America/Godthab" },
{ L"Greenwich Standard Time", L"", L"Atlantic/Reykjavik" },
{ L"Greenwich Standard Time", L"BF", L"Africa/Ouagadougou" },
{ L"Greenwich Standard Time", L"CI", L"Africa/Abidjan" },
{ L"Greenwich Standard Time", L"EH", L"Africa/El_Aaiun" },
{ L"Greenwich Standard Time", L"GH", L"Africa/Accra" },
{ L"Greenwich Standard Time", L"GM", L"Africa/Banjul" },
{ L"Greenwich Standard Time", L"GN", L"Africa/Conakry" },
{ L"Greenwich Standard Time", L"GW", L"Africa/Bissau" },
{ L"Greenwich Standard Time", L"IS", L"Atlantic/Reykjavik" },
{ L"Greenwich Standard Time", L"LR", L"Africa/Monrovia" },
{ L"Greenwich Standard Time", L"ML", L"Africa/Bamako" },
{ L"Greenwich Standard Time", L"MR", L"Africa/Nouakchott" },
{ L"Greenwich Standard Time", L"SH", L"Atlantic/St_Helena" },
{ L"Greenwich Standard Time", L"SL", L"Africa/Freetown" },
{ L"Greenwich Standard Time", L"SN", L"Africa/Dakar" },
{ L"Greenwich Standard Time", L"ST", L"Africa/Sao_Tome" },
{ L"Greenwich Standard Time", L"TG", L"Africa/Lome" },
{ L"Hawaiian Standard Time", L"", L"Pacific/Honolulu" },
{ L"Hawaiian Standard Time", L"CK", L"Pacific/Rarotonga" },
{ L"Hawaiian Standard Time", L"PF", L"Pacific/Tahiti" },
{ L"Hawaiian Standard Time", L"TK", L"Pacific/Fakaofo" },
{ L"Hawaiian Standard Time", L"UM", L"Pacific/Johnston" },
{ L"Hawaiian Standard Time", L"US", L"Pacific/Honolulu" },
{ L"Hawaiian Standard Time", L"ZZ", L"Etc/GMT+10" },
{ L"India Standard Time", L"", L"Asia/Calcutta" },
{ L"India Standard Time", L"IN", L"Asia/Calcutta" },
{ L"Iran Standard Time", L"", L"Asia/Tehran" },
{ L"Iran Standard Time", L"IR", L"Asia/Tehran" },
{ L"Israel Standard Time", L"", L"Asia/Jerusalem" },
{ L"Israel Standard Time", L"IL", L"Asia/Jerusalem" },
{ L"Jordan Standard Time", L"", L"Asia/Amman" },
{ L"Jordan Standard Time", L"JO", L"Asia/Amman" },
{ L"Kaliningrad Standard Time", L"", L"Europe/Kaliningrad" },
{ L"Kaliningrad Standard Time", L"BY", L"Europe/Minsk" },
{ L"Kaliningrad Standard Time", L"RU", L"Europe/Kaliningrad" },
{ L"Kamchatka Standard Time", L"", L"Asia/Kamchatka" },
{ L"Korea Standard Time", L"", L"Asia/Seoul" },
{ L"Korea Standard Time", L"KP", L"Asia/Pyongyang" },
{ L"Korea Standard Time", L"KR", L"Asia/Seoul" },
{ L"Magadan Standard Time", L"", L"Asia/Magadan" },
{ L"Magadan Standard Time", L"RU", L"Asia/Magadan Asia/Anadyr Asia/Kamchatka" },
{ L"Mauritius Standard Time", L"", L"Indian/Mauritius" },
{ L"Mauritius Standard Time", L"MU", L"Indian/Mauritius" },
{ L"Mauritius Standard Time", L"RE", L"Indian/Reunion" },
{ L"Mauritius Standard Time", L"SC", L"Indian/Mahe" },
{ L"Mexico Standard Time", L"", L"America/Mexico_City" },
{ L"Mexico Standard Time 2", L"", L"America/Mazatlan" },
{ L"Mid-Atlantic Standard Time", L"", L"Atlantic/South_Georgia" },
{ L"Middle East Standard Time", L"", L"Asia/Beirut" },
{ L"Middle East Standard Time", L"LB", L"Asia/Beirut" },
{ L"Montevideo Standard Time", L"", L"America/Montevideo" },
{ L"Montevideo Standard Time", L"UY", L"America/Montevideo" },
{ L"Morocco Standard Time", L"", L"Africa/Casablanca" },
{ L"Morocco Standard Time", L"MA", L"Africa/Casablanca" },
{ L"Mountain Standard Time", L"", L"America/Denver" },
{ L"Mountain Standard Time", L"CA", L"America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife" },
{ L"Mountain Standard Time", L"MX", L"America/Ojinaga" },
{ L"Mountain Standard Time", L"US", L"America/Denver America/Boise America/Shiprock" },
{ L"Mountain Standard Time", L"ZZ", L"MST7MDT" },
{ L"Mountain Standard Time (Mexico)", L"", L"America/Chihuahua" },
{ L"Mountain Standard Time (Mexico)", L"MX", L"America/Chihuahua America/Mazatlan" },
{ L"Myanmar Standard Time", L"", L"Asia/Rangoon" },
{ L"Myanmar Standard Time", L"CC", L"Indian/Cocos" },
{ L"Myanmar Standard Time", L"MM", L"Asia/Rangoon" },
{ L"N. Central Asia Standard Time", L"", L"Asia/Novosibirsk" },
{ L"N. Central Asia Standard Time", L"RU", L"Asia/Novosibirsk Asia/Novokuznetsk Asia/Omsk" },
{ L"Namibia Standard Time", L"", L"Africa/Windhoek" },
{ L"Namibia Standard Time", L"NA", L"Africa/Windhoek" },
{ L"Nepal Standard Time", L"", L"Asia/Kathmandu" },
{ L"Nepal Standard Time", L"NP", L"Asia/Kathmandu" },
{ L"New Zealand Standard Time", L"", L"Pacific/Auckland" },
{ L"New Zealand Standard Time", L"AQ", L"Antarctica/South_Pole Antarctica/McMurdo" },
{ L"New Zealand Standard Time", L"NZ", L"Pacific/Auckland" },
{ L"Newfoundland Standard Time", L"", L"America/St_Johns" },
{ L"Newfoundland Standard Time", L"CA", L"America/St_Johns" },
{ L"North Asia East Standard Time", L"", L"Asia/Irkutsk" },
{ L"North Asia East Standard Time", L"RU", L"Asia/Irkutsk" },
{ L"North Asia Standard Time", L"", L"Asia/Krasnoyarsk" },
{ L"North Asia Standard Time", L"RU", L"Asia/Krasnoyarsk" },
{ L"Pacific SA Standard Time", L"", L"America/Santiago" },
{ L"Pacific SA Standard Time", L"AQ", L"Antarctica/Palmer" },
{ L"Pacific SA Standard Time", L"CL", L"America/Santiago" },
{ L"Pacific Standard Time", L"", L"America/Los_Angeles" },
{ L"Pacific Standard Time", L"CA", L"America/Vancouver America/Dawson America/Whitehorse" },
{ L"Pacific Standard Time", L"MX", L"America/Tijuana" },
{ L"Pacific Standard Time", L"US", L"America/Los_Angeles" },
{ L"Pacific Standard Time", L"ZZ", L"PST8PDT" },
{ L"Pacific Standard Time (Mexico)", L"", L"America/Santa_Isabel" },
{ L"Pacific Standard Time (Mexico)", L"MX", L"America/Santa_Isabel" },
{ L"Pakistan Standard Time", L"", L"Asia/Karachi" },
{ L"Pakistan Standard Time", L"PK", L"Asia/Karachi" },
{ L"Paraguay Standard Time", L"", L"America/Asuncion" },
{ L"Paraguay Standard Time", L"PY", L"America/Asuncion" },
{ L"Romance Standard Time", L"", L"Europe/Paris" },
{ L"Romance Standard Time", L"BE", L"Europe/Brussels" },
{ L"Romance Standard Time", L"DK", L"Europe/Copenhagen" },
{ L"Romance Standard Time", L"ES", L"Europe/Madrid Africa/Ceuta" },
{ L"Romance Standard Time", L"FR", L"Europe/Paris" },
{ L"Russian Standard Time", L"", L"Europe/Moscow" },
{ L"Russian Standard Time", L"RU", L"Europe/Moscow Europe/Samara Europe/Volgograd" },
{ L"SA Eastern Standard Time", L"", L"America/Cayenne" },
{ L"SA Eastern Standard Time", L"AQ", L"Antarctica/Rothera" },
{ L"SA Eastern Standard Time", L"BR", L"America/Fortaleza America/Araguaina America/Belem America/Maceio America/Recife America/Santarem" },
{ L"SA Eastern Standard Time", L"GF", L"America/Cayenne" },
{ L"SA Eastern Standard Time", L"SR", L"America/Paramaribo" },
{ L"SA Eastern Standard Time", L"ZZ", L"Etc/GMT+3" },
{ L"SA Pacific Standard Time", L"", L"America/Bogota" },
{ L"SA Pacific Standard Time", L"CA", L"America/Coral_Harbour" },
{ L"SA Pacific Standard Time", L"CO", L"America/Bogota" },
{ L"SA Pacific Standard Time", L"EC", L"America/Guayaquil" },
{ L"SA Pacific Standard Time", L"HT", L"America/Port-au-Prince" },
{ L"SA Pacific Standard Time", L"JM", L"America/Jamaica" },
{ L"SA Pacific Standard Time", L"KY", L"America/Cayman" },
{ L"SA Pacific Standard Time", L"PA", L"America/Panama" },
{ L"SA Pacific Standard Time", L"PE", L"America/Lima" },
{ L"SA Pacific Standard Time", L"ZZ", L"Etc/GMT+5" },
{ L"SA Western Standard Time", L"", L"America/La_Paz" },
{ L"SA Western Standard Time", L"AG", L"America/Antigua" },
{ L"SA Western Standard Time", L"AI", L"America/Anguilla" },
{ L"SA Western Standard Time", L"AW", L"America/Aruba" },
{ L"SA Western Standard Time", L"BB", L"America/Barbados" },
{ L"SA Western Standard Time", L"BL", L"America/St_Barthelemy" },
{ L"SA Western Standard Time", L"BO", L"America/La_Paz" },
{ L"SA Western Standard Time", L"BR", L"America/Manaus America/Boa_Vista America/Eirunepe America/Porto_Velho America/Rio_Branco" },
{ L"SA Western Standard Time", L"CA", L"America/Blanc-Sablon" },
{ L"SA Western Standard Time", L"CW", L"America/Curacao" },
{ L"SA Western Standard Time", L"DM", L"America/Dominica" },
{ L"SA Western Standard Time", L"DO", L"America/Santo_Domingo" },
{ L"SA Western Standard Time", L"GD", L"America/Grenada" },
{ L"SA Western Standard Time", L"GP", L"America/Guadeloupe" },
{ L"SA Western Standard Time", L"GY", L"America/Guyana" },
{ L"SA Western Standard Time", L"KN", L"America/St_Kitts" },
{ L"SA Western Standard Time", L"LC", L"America/St_Lucia" },
{ L"SA Western Standard Time", L"MF", L"America/Marigot" },
{ L"SA Western Standard Time", L"MQ", L"America/Martinique" },
{ L"SA Western Standard Time", L"MS", L"America/Montserrat" },
{ L"SA Western Standard Time", L"PR", L"America/Puerto_Rico" },
{ L"SA Western Standard Time", L"TT", L"America/Port_of_Spain" },
{ L"SA Western Standard Time", L"VC", L"America/St_Vincent" },
{ L"SA Western Standard Time", L"VG", L"America/Tortola" },
{ L"SA Western Standard Time", L"VI", L"America/St_Thomas" },
{ L"SA Western Standard Time", L"ZZ", L"Etc/GMT+4" },
{ L"SE Asia Standard Time", L"", L"Asia/Bangkok" },
{ L"SE Asia Standard Time", L"AQ", L"Antarctica/Davis" },
{ L"SE Asia Standard Time", L"CX", L"Indian/Christmas" },
{ L"SE Asia Standard Time", L"ID", L"Asia/Jakarta Asia/Pontianak" },
{ L"SE Asia Standard Time", L"KH", L"Asia/Phnom_Penh" },
{ L"SE Asia Standard Time", L"LA", L"Asia/Vientiane" },
{ L"SE Asia Standard Time", L"MN", L"Asia/Hovd" },
{ L"SE Asia Standard Time", L"TH", L"Asia/Bangkok" },
{ L"SE Asia Standard Time", L"VN", L"Asia/Saigon" },
{ L"SE Asia Standard Time", L"ZZ", L"Etc/GMT-7" },
{ L"Samoa Standard Time", L"", L"Pacific/Apia" },
{ L"Samoa Standard Time", L"WS", L"Pacific/Apia" },
{ L"Singapore Standard Time", L"", L"Asia/Singapore" },
{ L"Singapore Standard Time", L"BN", L"Asia/Brunei" },
{ L"Singapore Standard Time", L"ID", L"Asia/Makassar" },
{ L"Singapore Standard Time", L"MY", L"Asia/Kuala_Lumpur Asia/Kuching" },
{ L"Singapore Standard Time", L"PH", L"Asia/Manila" },
{ L"Singapore Standard Time", L"SG", L"Asia/Singapore" },
{ L"Singapore Standard Time", L"ZZ", L"Etc/GMT-8" },
{ L"South Africa Standard Time", L"", L"Africa/Johannesburg" },
{ L"South Africa Standard Time", L"BI", L"Africa/Bujumbura" },
{ L"South Africa Standard Time", L"BW", L"Africa/Gaborone" },
{ L"South Africa Standard Time", L"CD", L"Africa/Lubumbashi" },
{ L"South Africa Standard Time", L"LS", L"Africa/Maseru" },
{ L"South Africa Standard Time", L"LY", L"Africa/Tripoli" },
{ L"South Africa Standard Time", L"MW", L"Africa/Blantyre" },
{ L"South Africa Standard Time", L"MZ", L"Africa/Maputo" },
{ L"South Africa Standard Time", L"RW", L"Africa/Kigali" },
{ L"South Africa Standard Time", L"SZ", L"Africa/Mbabane" },
{ L"South Africa Standard Time", L"ZA", L"Africa/Johannesburg" },
{ L"South Africa Standard Time", L"ZM", L"Africa/Lusaka" },
{ L"South Africa Standard Time", L"ZW", L"Africa/Harare" },
{ L"South Africa Standard Time", L"ZZ", L"Etc/GMT-2" },
{ L"Sri Lanka Standard Time", L"", L"Asia/Colombo" },
{ L"Sri Lanka Standard Time", L"LK", L"Asia/Colombo" },
{ L"Syria Standard Time", L"", L"Asia/Damascus" },
{ L"Syria Standard Time", L"SY", L"Asia/Damascus" },
{ L"Taipei Standard Time", L"", L"Asia/Taipei" },
{ L"Taipei Standard Time", L"TW", L"Asia/Taipei" },
{ L"Tasmania Standard Time", L"", L"Australia/Hobart" },
{ L"Tasmania Standard Time", L"AU", L"Australia/Hobart Australia/Currie" },
{ L"Tokyo Standard Time", L"", L"Asia/Tokyo" },
{ L"Tokyo Standard Time", L"ID", L"Asia/Jayapura" },
{ L"Tokyo Standard Time", L"JP", L"Asia/Tokyo" },
{ L"Tokyo Standard Time", L"PW", L"Pacific/Palau" },
{ L"Tokyo Standard Time", L"TL", L"Asia/Dili" },
{ L"Tokyo Standard Time", L"ZZ", L"Etc/GMT-9" },
{ L"Tonga Standard Time", L"", L"Pacific/Tongatapu" },
{ L"Tonga Standard Time", L"KI", L"Pacific/Enderbury" },
{ L"Tonga Standard Time", L"TO", L"Pacific/Tongatapu" },
{ L"Tonga Standard Time", L"ZZ", L"Etc/GMT-13" },
{ L"Turkey Standard Time", L"", L"Europe/Istanbul" },
{ L"Turkey Standard Time", L"TR", L"Europe/Istanbul" },
{ L"US Eastern Standard Time", L"", L"America/Indianapolis" },
{ L"US Eastern Standard Time", L"US", L"America/Indianapolis America/Indiana/Marengo America/Indiana/Vevay" },
{ L"US Mountain Standard Time", L"", L"America/Phoenix" },
{ L"US Mountain Standard Time", L"CA", L"America/Dawson_Creek" },
{ L"US Mountain Standard Time", L"MX", L"America/Hermosillo" },
{ L"US Mountain Standard Time", L"US", L"America/Phoenix" },
{ L"US Mountain Standard Time", L"ZZ", L"Etc/GMT+7" },
{ L"UTC", L"", L"Etc/GMT" },
{ L"UTC", L"GL", L"America/Danmarkshavn" },
{ L"UTC", L"ZZ", L"Etc/GMT" },
{ L"UTC+12", L"", L"Etc/GMT-12" },
{ L"UTC+12", L"KI", L"Pacific/Tarawa" },
{ L"UTC+12", L"MH", L"Pacific/Majuro Pacific/Kwajalein" },
{ L"UTC+12", L"NR", L"Pacific/Nauru" },
{ L"UTC+12", L"TV", L"Pacific/Funafuti" },
{ L"UTC+12", L"UM", L"Pacific/Wake" },
{ L"UTC+12", L"WF", L"Pacific/Wallis" },
{ L"UTC+12", L"ZZ", L"Etc/GMT-12" },
{ L"UTC-02", L"", L"Etc/GMT+2" },
{ L"UTC-02", L"BR", L"America/Noronha" },
{ L"UTC-02", L"GS", L"Atlantic/South_Georgia" },
{ L"UTC-02", L"ZZ", L"Etc/GMT+2" },
{ L"UTC-11", L"", L"Etc/GMT+11" },
{ L"UTC-11", L"AS", L"Pacific/Pago_Pago" },
{ L"UTC-11", L"NU", L"Pacific/Niue" },
{ L"UTC-11", L"UM", L"Pacific/Midway" },
{ L"UTC-11", L"ZZ", L"Etc/GMT+11" },
{ L"Ulaanbaatar Standard Time", L"", L"Asia/Ulaanbaatar" },
{ L"Ulaanbaatar Standard Time", L"MN", L"Asia/Ulaanbaatar Asia/Choibalsan" },
{ L"Venezuela Standard Time", L"", L"America/Caracas" },
{ L"Venezuela Standard Time", L"VE", L"America/Caracas" },
{ L"Vladivostok Standard Time", L"", L"Asia/Vladivostok" },
{ L"Vladivostok Standard Time", L"RU", L"Asia/Vladivostok Asia/Sakhalin" },
{ L"W. Australia Standard Time", L"", L"Australia/Perth" },
{ L"W. Australia Standard Time", L"AQ", L"Antarctica/Casey" },
{ L"W. Australia Standard Time", L"AU", L"Australia/Perth" },
{ L"W. Central Africa Standard Time", L"", L"Africa/Lagos" },
{ L"W. Central Africa Standard Time", L"AO", L"Africa/Luanda" },
{ L"W. Central Africa Standard Time", L"BJ", L"Africa/Porto-Novo" },
{ L"W. Central Africa Standard Time", L"CD", L"Africa/Kinshasa" },
{ L"W. Central Africa Standard Time", L"CF", L"Africa/Bangui" },
{ L"W. Central Africa Standard Time", L"CG", L"Africa/Brazzaville" },
{ L"W. Central Africa Standard Time", L"CM", L"Africa/Douala" },
{ L"W. Central Africa Standard Time", L"DZ", L"Africa/Algiers" },
{ L"W. Central Africa Standard Time", L"GA", L"Africa/Libreville" },
{ L"W. Central Africa Standard Time", L"GQ", L"Africa/Malabo" },
{ L"W. Central Africa Standard Time", L"NE", L"Africa/Niamey" },
{ L"W. Central Africa Standard Time", L"NG", L"Africa/Lagos" },
{ L"W. Central Africa Standard Time", L"TD", L"Africa/Ndjamena" },
{ L"W. Central Africa Standard Time", L"TN", L"Africa/Tunis" },
{ L"W. Central Africa Standard Time", L"ZZ", L"Etc/GMT-1" },
{ L"W. Europe Standard Time", L"", L"Europe/Berlin" },
{ L"W. Europe Standard Time", L"AD", L"Europe/Andorra" },
{ L"W. Europe Standard Time", L"AT", L"Europe/Vienna" },
{ L"W. Europe Standard Time", L"CH", L"Europe/Zurich" },
{ L"W. Europe Standard Time", L"DE", L"Europe/Berlin" },
{ L"W. Europe Standard Time", L"GI", L"Europe/Gibraltar" },
{ L"W. Europe Standard Time", L"IT", L"Europe/Rome" },
{ L"W. Europe Standard Time", L"LI", L"Europe/Vaduz" },
{ L"W. Europe Standard Time", L"LU", L"Europe/Luxembourg" },
{ L"W. Europe Standard Time", L"MC", L"Europe/Monaco" },
{ L"W. Europe Standard Time", L"MT", L"Europe/Malta" },
{ L"W. Europe Standard Time", L"NL", L"Europe/Amsterdam" },
{ L"W. Europe Standard Time", L"NO", L"Europe/Oslo" },
{ L"W. Europe Standard Time", L"SE", L"Europe/Stockholm" },
{ L"W. Europe Standard Time", L"SJ", L"Arctic/Longyearbyen" },
{ L"W. Europe Standard Time", L"SM", L"Europe/San_Marino" },
{ L"W. Europe Standard Time", L"VA", L"Europe/Vatican" },
{ L"West Asia Standard Time", L"", L"Asia/Tashkent" },
{ L"West Asia Standard Time", L"AQ", L"Antarctica/Mawson" },
{ L"West Asia Standard Time", L"KZ", L"Asia/Oral Asia/Aqtau Asia/Aqtobe" },
{ L"West Asia Standard Time", L"MV", L"Indian/Maldives" },
{ L"West Asia Standard Time", L"TF", L"Indian/Kerguelen" },
{ L"West Asia Standard Time", L"TJ", L"Asia/Dushanbe" },
{ L"West Asia Standard Time", L"TM", L"Asia/Ashgabat" },
{ L"West Asia Standard Time", L"UZ", L"Asia/Tashkent Asia/Samarkand" },
{ L"West Asia Standard Time", L"ZZ", L"Etc/GMT-5" },
{ L"West Pacific Standard Time", L"", L"Pacific/Port_Moresby" },
{ L"West Pacific Standard Time", L"AQ", L"Antarctica/DumontDUrville" },
{ L"West Pacific Standard Time", L"FM", L"Pacific/Truk" },
{ L"West Pacific Standard Time", L"GU", L"Pacific/Guam" },
{ L"West Pacific Standard Time", L"MP", L"Pacific/Saipan" },
{ L"West Pacific Standard Time", L"PG", L"Pacific/Port_Moresby" },
{ L"West Pacific Standard Time", L"ZZ", L"Etc/GMT-10" },
{ L"Yakutsk Standard Time", L"", L"Asia/Yakutsk" },
{ L"Yakutsk Standard Time", L"RU", L"Asia/Yakutsk" }
};
/* The auto-generated tzmap.h contains the mapping table from Windows timezone
and country per ISO 3166-1 to POSIX timezone. For more info, see the file
itself. */
#include "tzmap.h"
#define TZMAP_SIZE (sizeof tzmap / sizeof tzmap[0])
@ -505,10 +40,6 @@ static char opts[] = "hV";
#define REG_TZINFO L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation"
#define REG_TZDB L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"
/* Not available on pre-XP */
GEOID WINAPI (*getusergeoid)(GEOCLASS);
int WINAPI (*getgeoinfo)(GEOID, GEOTYPE, LPWSTR, int, LANGID);
static inline HKEY
reg_open (HKEY pkey, PCWSTR path, const char *msg)
{
@ -661,22 +192,13 @@ main (int argc, char **argv)
}
reg_close (hkey);
/* Fetch addresses of Geo functions. As long as we support Windows 2000
this is required, unfortunately. */
getusergeoid = (GEOID (WINAPI *)())
GetProcAddress (GetModuleHandle ("kernel32.dll"), "GetUserGeoID");
getgeoinfo = (int (WINAPI *)(GEOID, GEOTYPE, LPWSTR, int, LANGID))
GetProcAddress (GetModuleHandle ("kernel32.dll"), "GetGeoInfoW");
/* We fetch the current Geo-location of the user and convert it to an
ISO 3166-1 compatible nation code. */
*country = L'\0';
/* Post-W2K we fetch the current Geo-location of the user and convert it
to a ISO 3166-1 compatible nation code. */
if (getusergeoid && getgeoinfo)
{
geo = getusergeoid (GEOCLASS_NATION);
if (geo != GEOID_NOT_AVAILABLE)
getgeoinfo (geo, GEO_ISO2, country, sizeof country, 0);
}
/* On W2K, or if the Geo-location isn't available, we use the locale
geo = GetUserGeoID (GEOCLASS_NATION);
if (geo != GEOID_NOT_AVAILABLE)
GetGeoInfoW (geo, GEO_ISO2, country, sizeof country, 0);
/* If, for some reason, the Geo-location isn't available, we use the locale
setting instead. */
if (!*country)
GetLocaleInfoW (LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME,