Update our mapping of Windows time zone names using CLDR info

Enterprise / PostgreSQL - Tom Lane [sss.pgh.pa.us] - 2 October 2021 20:05 UTC

This corrects a bunch of entries in win32_tzmap[], and adds a few new ones, based on the CLDR project's windowsZones.xml file. Non-cosmetic changes fall into four main categories:

- Flat-out errors:

US/Aleutan doesn't exist America/Salvador doesn't exist Asia/Baku is wrong for Yerevan Asia/Dhaka (Bangladesh) is wrong for Astana (Kazakhstan) Europe/Bucharest is wrong for Chisinau America/Mexico_City is wrong for Chetumal America/Buenos_Aires is wrong for Cayenne America/Caracas has its own zone, so poor fit for La Paz US/Eastern is wrong for Haiti US/Eastern is wrong for Indiana (East) Asia/Karachi is wrong for Tashkent Etc/UTC+12 doesn't exist Signs of Etc/GMT zones were backwards

- Judgment calls:

(These changes follow CLDR's choices, except for the first one)

Use Europe/London for "Greenwich Standard Time", since that seems much more likely than Africa/Casablanca to be what people will think that zone name means. CLDR has Atlantic/Reykjavik here, but that's no better.

Asia/Shanghai seems a better fit than Hong Kong for "China Standard Time".

Europe/Sarajevo is now a link to Belgrade, ie "Central Europe Standard Time"; so use Warsaw for "Central European Standard Time".

America/Sao_Paulo seems more representative than Araguaina for "E. South America Standard Time".

Africa/Johannesburg seems more representative than Harare for "South Africa Standard Time".

- New Windows zone names:

"Israel Standard Time" "Kaliningrad Standard Time" "Russia Time Zone N" for various N "Singapore Standard Time" "South Sudan Standard Time" "W. Central Africa Standard Time" "West Bank Standard Time" "Yukon Standard Time"

Some of these replace older spellings, but I kept the older spellings too in case our code runs on a machine with the older data.

- Replace aliases (tzdb Links) with underlying city-named zones:

(This tracks tzdb's longstanding practice, and reduces inconsistency with the rest of the entries, as well as with CLDR.)

US/Alaska Asia/Kuwait Asia/Muscat Canada/Atlantic Australia/Canberra Canada/Saskatchewan US/Central US/Eastern US/Hawaii US/Mountain Canada/Newfoundland US/Pacific

Back-patch to all supported branches, as is our usual practice for time zone data updates.

Discussion: https://postgr.es/m/3266414.1633045628@sss.pgh.pa.us

9b8d68cc65 Update our mapping of Windows time zone names using CLDR info.
src/bin/initdb/findtimezone.c | 157 ++++++++++++++++++++++++++++--------------
1 file changed, 106 insertions(+), 51 deletions(-)

Upstream: git.postgresql.org

  • Share