Update time zone data files to tzdata release 2018e.

DST law changes in North Korea.  Redefinition of "daylight savings" in
Ireland, as well as for some past years in Namibia and Czechoslovakia.
Additional historical corrections for Czechoslovakia.

With this change, the IANA database models Irish timekeeping as following
"standard time" in summer, and "daylight savings" in winter, so that the
daylight savings offset is one hour behind standard time not one hour
ahead.  This does not change their UTC offset (+1:00 in summer, 0:00 in
winter) nor their timezone abbreviations (IST in summer, GMT in winter),
though now "IST" is more correctly read as "Irish Standard Time" not "Irish
Summer Time".  However, the "is_dst" column in the pg_timezone_names view
will now be true in winter and false in summer for the Europe/Dublin zone.

Similar changes were made for Namibia between 1994 and 2017, and for
Czechoslovakia between 1946 and 1947.

So far as I can find, no Postgres internal logic cares about which way
tm_isdst is reported; in particular, since commit b2cbced9e we do not
rely on it to decide how to interpret ambiguous timestamps during DST
transitions.  So I don't think this change will affect any Postgres
behavior other than the timezone-view outputs.

Discussion: https://postgr.es/m/30996.1525445902@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2018-05-09 13:55:27 -04:00
parent bef5fcc36b
commit 234bb985c5
6 changed files with 1607 additions and 1599 deletions

View File

@ -1575,7 +1575,10 @@ DetermineTimeZoneOffsetInternal(struct pg_tm *tm, pg_tz *tzp, pg_time_t *tp)
* fall-back transition, prefer "after". (We used to define and implement
* this test as "prefer the standard-time interpretation", but that rule
* does not help to resolve the behavior when both times are reported as
* standard time; which does happen, eg Europe/Moscow in Oct 2014.)
* standard time; which does happen, eg Europe/Moscow in Oct 2014. Also,
* in some zones such as Europe/Dublin, there is widespread confusion
* about which time offset is "standard" time, so it's fortunate that our
* behavior doesn't depend on that.)
*/
if (beforetime > aftertime)
{

File diff suppressed because it is too large Load Diff

View File

@ -70,15 +70,15 @@ EEST 10800 D
EET 7200
EST -18000
GMT 0
GMT 0 D
HDT -32400 D
HKT 28800
HST -36000
IDT 10800 D
IST 19800
IST 3600 D
IST 3600
IST 7200
JST 32400
KST 30600
KST 32400
MDT -21600 D
MEST 7200 D

View File

@ -118,13 +118,13 @@ IRST Asia/Tehran # Iran Standard Time (obsolete)
IRT 12600 # Iran Time (not in IANA database)
# CONFLICT! IST is not unique
# Other timezones:
# - IST: Irish Summer Time (Europe)
# - IST: Irish Standard Time (Europe)
# - IST: Israel Standard Time (Asia)
IST 19800 # Indian Standard Time
# (Asia/Calcutta)
# CONFLICT! IST is not unique
# Other timezones:
# - IST: Irish Summer Time (Europe)
# - IST: Irish Standard Time (Europe)
# - IST: Indian Standard Time (Asia)
IST 7200 # Israel Standard Time
# (Asia/Jerusalem)

View File

@ -236,7 +236,7 @@ IRKT Asia/Irkutsk # Irkutsk Time (obsolete)
IRT 12600 # Iran Time (not in IANA database)
# CONFLICT! IST is not unique
# Other timezones:
# - IST: Irish Summer Time (Europe)
# - IST: Irish Standard Time (Europe)
# - IST: Indian Standard Time (Asia)
IST 7200 # Israel Standard Time
# (Asia/Jerusalem)

View File

@ -180,7 +180,7 @@ GMT 0 # Greenwich Mean Time
# Other timezones:
# - IST: Indian Standard Time (Asia)
# - IST: Israel Standard Time (Asia)
IST 3600 D # Irish Summer Time
IST 3600 # Irish Standard Time
# (Europe/Dublin)
MEST 7200 D # Middle Europe Summer Time
# (MET)