• Tom Lane's avatar
    Update our mapping of Windows time zone names using CLDR info. · fa8db487
    Tom Lane authored
    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
    fa8db487
findtimezone.c 45.3 KB