summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2021-10-04 14:52:17 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2021-10-04 14:52:17 -0400
commitb5f34ae08ad2153f66d2463ad008da9e67ec6b03 (patch)
tree9efd3f15f34a0fb8de98283b938e5f82dd99bd35
parente2b2a9e1c3d51c33f9b4a0d29d8bb7cad05c41ae (diff)
downloadpostgresql-b5f34ae08ad2153f66d2463ad008da9e67ec6b03.tar.gz
Update our mapping of Windows time zone names some more.
Per discussion, let's just follow CLDR's default zone mappings faithfully. There are two changes here that are clear improvements: * Mapping "Greenwich Standard Time" to Atlantic/Reykjavik is actually a better fit than using London, because Iceland hasn't observed DST since 1968, so this is more nearly what people might expect. * Since the "Samoa" zone is specified to be UTC+13:00, we must map it to Pacific/Apia not Pacific/Samoa; the latter refers to American Samoa which is now on the other side of the date line. The rest of these changes look like they're choosing the most populous IANA zone as representative. Whatever the details, we're just going to say "if you don't like this mapping, complain to CLDR". Discussion: https://postgr.es/m/3266414.1633045628@sss.pgh.pa.us
-rw-r--r--src/bin/initdb/findtimezone.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/bin/initdb/findtimezone.c b/src/bin/initdb/findtimezone.c
index 0cb14c024c..7bd236693c 100644
--- a/src/bin/initdb/findtimezone.c
+++ b/src/bin/initdb/findtimezone.c
@@ -740,8 +740,8 @@ static const struct
* additions have been made by comparing to the CLDR project's
* windowsZones.xml file.
*
- * The zones have been matched to IANA timezones based on CLDR's mapping,
- * with a few manual exceptions.
+ * The zones have been matched to IANA timezones based on CLDR's mapping
+ * for "territory 001".
*/
{
/* (UTC+04:30) Kabul */
@@ -868,11 +868,10 @@ static const struct
"Cen. Australia Standard Time", "Cen. Australia Daylight Time",
"Australia/Adelaide"
},
- /* Central America (other than Mexico) generally does not observe DST */
{
/* (UTC-06:00) Central America */
"Central America Standard Time", "Central America Daylight Time",
- "CST6"
+ "America/Guatemala"
},
{
/* (UTC+06:00) Astana */
@@ -887,7 +886,7 @@ static const struct
{
/* (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague */
"Central Europe Standard Time", "Central Europe Daylight Time",
- "Europe/Belgrade"
+ "Europe/Budapest"
},
{
/* (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb */
@@ -897,7 +896,7 @@ static const struct
{
/* (UTC+11:00) Solomon Is., New Caledonia */
"Central Pacific Standard Time", "Central Pacific Daylight Time",
- "Pacific/Noumea"
+ "Pacific/Guadalcanal"
},
{
/* (UTC-06:00) Central Time (US & Canada) */
@@ -987,7 +986,7 @@ static const struct
{
/* (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius */
"FLE Standard Time", "FLE Daylight Time",
- "Europe/Helsinki"
+ "Europe/Kiev"
},
{
/* (UTC+04:00) Tbilisi */
@@ -1009,16 +1008,17 @@ static const struct
* Windows uses this zone name in various places that lie near the
* prime meridian, but are not in the UK. However, most people
* probably think that "Greenwich" means UK civil time, or maybe even
- * straight-up UTC. Hence, map to Europe/London.
+ * straight-up UTC. Atlantic/Reykjavik is a decent match for that
+ * interpretation because Iceland hasn't observed DST since 1968.
*/
/* (UTC+00:00) Monrovia, Reykjavik */
"Greenwich Standard Time", "Greenwich Daylight Time",
- "Europe/London"
+ "Atlantic/Reykjavik"
},
{
/* (UTC+02:00) Athens, Bucharest */
"GTB Standard Time", "GTB Daylight Time",
- "Europe/Athens"
+ "Europe/Bucharest"
},
{
/* (UTC-05:00) Haiti */
@@ -1243,7 +1243,7 @@ static const struct
{
/* (UTC+01:00) Brussels, Copenhagen, Madrid, Paris */
"Romance Standard Time", "Romance Daylight Time",
- "Europe/Brussels"
+ "Europe/Paris"
},
{
/* (UTC+04:00) Izhevsk, Samara */
@@ -1348,7 +1348,7 @@ static const struct
{
/* (UTC+13:00) Samoa */
"Samoa Standard Time", "Samoa Daylight Time",
- "Pacific/Samoa"
+ "Pacific/Apia"
},
{
/* (UTC+00:00) Sao Tome */
@@ -1518,7 +1518,7 @@ static const struct
{
/* (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna */
"W. Europe Standard Time", "W. Europe Daylight Time",
- "CET"
+ "Europe/Berlin"
},
{
/* (UTC+07:00) Hovd */
@@ -1543,7 +1543,7 @@ static const struct
{
/* (UTC+10:00) Guam, Port Moresby */
"West Pacific Standard Time", "West Pacific Daylight Time",
- "Pacific/Guam"
+ "Pacific/Port_Moresby"
},
{
/* (UTC+09:00) Yakutsk */