diff options
author | Stuart Bishop <stuart@stuartbishop.net> | 2014-05-15 14:52:43 +0700 |
---|---|---|
committer | Stuart Bishop <stuart@stuartbishop.net> | 2014-05-15 14:52:43 +0700 |
commit | 66ca1c5cea8bd738fe0f90a237f574e03a2dab99 (patch) | |
tree | e187d114f3a502ac09c902ced1e206d9e1797a84 | |
parent | 766a3160ed86adbfc8498734f1c84650f02728ca (diff) | |
download | pytz-66ca1c5cea8bd738fe0f90a237f574e03a2dab99.tar.gz |
Import IANA 2014c database
-rw-r--r-- | elsie.nci.nih.gov/src/Makefile | 4 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/NEWS | 24 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/africa | 43 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/asia | 16 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/europe | 4 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/private.h | 5 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/zdump.c | 4 | ||||
-rw-r--r-- | elsie.nci.nih.gov/src/zic.c | 70 |
8 files changed, 102 insertions, 68 deletions
diff --git a/elsie.nci.nih.gov/src/Makefile b/elsie.nci.nih.gov/src/Makefile index ffe57db..3cdd845 100644 --- a/elsie.nci.nih.gov/src/Makefile +++ b/elsie.nci.nih.gov/src/Makefile @@ -6,7 +6,7 @@ PACKAGE= tzcode # Version numbers of the code and data distributions. -VERSION= 2014b +VERSION= 2014c # Email address for bug reports. BUGEMAIL= tz@iana.org @@ -443,7 +443,7 @@ check_web: $(WEB_PAGES) clean_misc: rm -f core *.o *.out \ - date tzselect version.h zdump zic yearistype + date tzselect version.h zdump zic yearistype libtz.a clean: clean_misc rm -fr tzpublic diff --git a/elsie.nci.nih.gov/src/NEWS b/elsie.nci.nih.gov/src/NEWS index de7400a..b092ba8 100644 --- a/elsie.nci.nih.gov/src/NEWS +++ b/elsie.nci.nih.gov/src/NEWS @@ -1,6 +1,30 @@ News for the tz database +Release 2014c - 2014-05-13 07:44:13 -0700 + + Changes affecting near-future time stamps + + Egypt observes DST starting May 15. (Thanks to Ahmad El-Dardiry.) + Details have not been announced, except that DST will not be observed + during Ramadan. Guess that DST will stop during the same Ramadan dates as + Morocco, and that Egypt's future spring and fall transitions will be the + same as 2010 when it last observed DST, namely April's last Friday at + 00:00 to September's last Thursday at 23:00 standard time. Also, guess + that Ramadan transitions will be at 00:00 standard time. + + Changes affecting code + + zic now generates transitions for minimum time values, eliminating guesswork + when handling low-valued time stamps. (Thanks to Arthur David Olson.) + + Port to Cygwin sans glibc. (Thanks to Arthur David Olson.) + + Changes affecting commentary and documentation + + Remove now-confusing comment about Jordan. (Thanks to Oleksii Nochovnyi.) + + Release 2014b - 2014-03-24 21:28:50 -0700 Changes affecting near-future time stamps diff --git a/elsie.nci.nih.gov/src/africa b/elsie.nci.nih.gov/src/africa index fbf0b65..83bff2e 100644 --- a/elsie.nci.nih.gov/src/africa +++ b/elsie.nci.nih.gov/src/africa @@ -335,11 +335,54 @@ Rule Egypt 2007 only - Sep Thu>=1 23:00s 0 - # http://www.worldtimezone.com/dst_news/dst_news_egypt02.html # </a> +# From Ahmad El-Dardiry (2014-05-07): +# Egypt is to change back to Daylight system on May 15 +# http://english.ahram.org.eg/NewsContent/1/64/100735/Egypt/Politics-/Egypts-government-to-reapply-daylight-saving-time-.aspx + +# From Gunther Vermier (2015-05-13): +# our Egypt office confirms that the change will be at 15 May "midnight" (24:00) + +# From Paul Eggert (2014-05-13): +# Sarah El Deeb and Lee Keath of AP report that the Egyptian government says +# the change is because of blackouts in Cairo, even though Ahram Online (cited +# above) says DST had no affect on electricity consumption. The AP story says +# DST will not be observed during Ramadan. There is no information about when +# DST will end. See: +# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 +# +# For now, guess that later transitions will use 2010's rules, and that +# Egypt will agree with Morocco (see below) about the date Ramadan starts and +# ends, though (unlike Morocco) it will switch at 00:00 standard time. In +# Egypt the spring-forward transitions are removed for 2020-2022, when the +# guessed spring-forward date falls during the estimated Ramadan, and all +# transitions removed for 2023-2038, where the estimated Ramadan falls entirely +# outside the guessed daylight-saving time. Ramadan intrudes on the guessed +# DST starting in 2039, but that's beyond our somewhat-arbitrary cutoff. + Rule Egypt 2008 only - Aug lastThu 23:00s 0 - Rule Egypt 2009 only - Aug 20 23:00s 0 - Rule Egypt 2010 only - Aug 11 0:00 0 - Rule Egypt 2010 only - Sep 10 0:00 1:00 S Rule Egypt 2010 only - Sep lastThu 23:00s 0 - +Rule Egypt 2014 only - May 15 24:00 1:00 S +Rule Egypt 2014 only - Jun 29 0:00s 0 - +Rule Egypt 2014 only - Jul 29 0:00s 1:00 S +Rule Egypt 2014 max - Sep lastThu 23:00s 0 - +Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S +Rule Egypt 2015 only - Jun 18 0:00s 0 - +Rule Egypt 2015 only - Jul 18 0:00s 1:00 S +Rule Egypt 2016 only - Jun 7 0:00s 0 - +Rule Egypt 2016 only - Jul 7 0:00s 1:00 S +Rule Egypt 2017 only - May 27 0:00s 0 - +Rule Egypt 2017 only - Jun 26 0:00s 1:00 S +Rule Egypt 2018 only - May 16 0:00s 0 - +Rule Egypt 2018 only - Jun 15 0:00s 1:00 S +Rule Egypt 2019 only - May 6 0:00s 0 - +Rule Egypt 2019 only - Jun 5 0:00s 1:00 S +Rule Egypt 2020 only - May 24 0:00s 1:00 S +Rule Egypt 2021 only - May 13 0:00s 1:00 S +Rule Egypt 2022 only - May 3 0:00s 1:00 S +Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:09 - LMT 1900 Oct diff --git a/elsie.nci.nih.gov/src/asia b/elsie.nci.nih.gov/src/asia index 3bd7e7d..24566ca 100644 --- a/elsie.nci.nih.gov/src/asia +++ b/elsie.nci.nih.gov/src/asia @@ -1347,22 +1347,6 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u # "Jordan will switch to winter time on Friday, October 27". # -# From Phil Pizzey (2009-04-02): -# ...I think I may have spotted an error in the timezone data for -# Jordan. -# The current (2009d) asia file shows Jordan going to daylight -# saving -# time on the last Thursday in March. -# -# Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S -# -# However timeanddate.com, which I usually find reliable, shows Jordan -# going to daylight saving time on the last Friday in March since 2002. -# Please see -# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11"> -# http://www.timeanddate.com/worldclock/timezone.html?n=11 -# </a> - # From Steffen Thorsen (2009-04-02): # This single one might be good enough, (2009-03-24, Arabic): # <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279"> diff --git a/elsie.nci.nih.gov/src/europe b/elsie.nci.nih.gov/src/europe index f9a3392..bfc596a 100644 --- a/elsie.nci.nih.gov/src/europe +++ b/elsie.nci.nih.gov/src/europe @@ -2966,6 +2966,10 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 # From Alexander Krivenyshev (2014-03-17): # time change at 2:00 (2am) on March 30, 2014 # http://vz.ru/news/2014/3/17/677464.html +# From Paul Eggert (2014-03-30): +# Simferopol and Sevastopol reportedly changed their central town clocks +# late the previous day, but this appears to have been ceremonial +# and the discrepancies are small enough to not worry about. 2:00 EU EE%sT 2014 Mar 30 2:00 4:00 - MSK diff --git a/elsie.nci.nih.gov/src/private.h b/elsie.nci.nih.gov/src/private.h index 1a85c88..4e8f4ae 100644 --- a/elsie.nci.nih.gov/src/private.h +++ b/elsie.nci.nih.gov/src/private.h @@ -120,8 +120,9 @@ */ #ifndef HAVE_STDINT_H #define HAVE_STDINT_H \ - (199901 <= __STDC_VERSION__ || \ - 2 < (__GLIBC__ + (0 < __GLIBC_MINOR__))) + (199901 <= __STDC_VERSION__ \ + || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \ + || __CYGWIN__) #endif /* !defined HAVE_STDINT_H */ #if HAVE_STDINT_H diff --git a/elsie.nci.nih.gov/src/zdump.c b/elsie.nci.nih.gov/src/zdump.c index 209b79d..c48ac84 100644 --- a/elsie.nci.nih.gov/src/zdump.c +++ b/elsie.nci.nih.gov/src/zdump.c @@ -36,7 +36,9 @@ #ifndef HAVE_STDINT_H # define HAVE_STDINT_H \ - (199901 <= __STDC_VERSION__ || 2 < (__GLIBC__ + (0 < __GLIBC_MINOR__))) + (199901 <= __STDC_VERSION__ \ + || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \ + || __CYGWIN__) #endif #if HAVE_STDINT_H # include "stdint.h" diff --git a/elsie.nci.nih.gov/src/zic.c b/elsie.nci.nih.gov/src/zic.c index 34b3dc1..7e0f97f 100644 --- a/elsie.nci.nih.gov/src/zic.c +++ b/elsie.nci.nih.gov/src/zic.c @@ -962,8 +962,6 @@ gethms(const char *string, const char *const errstring, const int signable) error(_("time overflow")); return 0; } - if (noise && hh == HOURSPERDAY && mm == 0 && ss == 0) - warning(_("24:00 not handled by pre-1998 versions of zic")); if (noise && (hh > HOURSPERDAY || (hh == HOURSPERDAY && (mm != 0 || ss != 0)))) warning(_("values over 24 hours not handled by pre-2007 versions of zic")); @@ -1482,17 +1480,11 @@ writezone(const char *const name, const char *const string, char version) fromi = 0; while (fromi < timecnt && attypes[fromi].at < min_time) ++fromi; - /* - ** Remember that type 0 is reserved. - */ - if (isdsts[1] == 0) - while (fromi < timecnt && attypes[fromi].type == 1) - ++fromi; /* handled by default rule */ for ( ; fromi < timecnt; ++fromi) { - if (toi != 0 && ((attypes[fromi].at + + if (toi > 1 && ((attypes[fromi].at + gmtoffs[attypes[toi - 1].type]) <= - (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0 - : attypes[toi - 2].type]))) { + (attypes[toi - 1].at + + gmtoffs[attypes[toi - 2].type]))) { attypes[toi - 1].type = attypes[fromi].type; continue; @@ -1503,6 +1495,9 @@ writezone(const char *const name, const char *const string, char version) } timecnt = toi; } + if (noise && timecnt > 1200) + warning(_("pre-2014 clients may mishandle" + " more than 1200 transition times")); /* ** Transfer. */ @@ -1534,6 +1529,13 @@ writezone(const char *const name, const char *const string, char version) --timecnt32; ++timei32; } + /* + ** Output an INT32_MIN "transition" if appropriate--see below. + */ + if (timei32 > 0 && ats[timei32] > INT32_MIN) { + --timei32; + ++timecnt32; + } while (leapcnt32 > 0 && !is32(trans[leapcnt32 - 1])) --leapcnt32; while (leapcnt32 > 0 && !is32(trans[leapi32])) { @@ -1588,11 +1590,7 @@ writezone(const char *const name, const char *const string, char version) } thistimelim = thistimei + thistimecnt; thisleaplim = thisleapi + thisleapcnt; - /* - ** Remember that type 0 is reserved. - */ - writetype[0] = FALSE; - for (i = 1; i < typecnt; ++i) + for (i = 0; i < typecnt; ++i) writetype[i] = thistimecnt == timecnt; if (thistimecnt == 0) { /* @@ -1608,11 +1606,8 @@ writezone(const char *const name, const char *const string, char version) /* ** For America/Godthab and Antarctica/Palmer */ - /* - ** Remember that type 0 is reserved. - */ if (thistimei == 0) - writetype[1] = TRUE; + writetype[0] = TRUE; } #ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH /* @@ -1662,26 +1657,8 @@ writezone(const char *const name, const char *const string, char version) } #endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */ thistypecnt = 0; - /* - ** Potentially, set type 0 to that of lowest-valued time. - */ - if (thistimei > 0) { - for (i = 1; i < typecnt; ++i) - if (writetype[i] && !isdsts[i]) - break; - if (i != types[thistimei - 1]) { - i = types[thistimei - 1]; - gmtoffs[0] = gmtoffs[i]; - isdsts[0] = isdsts[i]; - ttisstds[0] = ttisstds[i]; - ttisgmts[0] = ttisgmts[i]; - abbrinds[0] = abbrinds[i]; - writetype[0] = TRUE; - writetype[i] = FALSE; - } - } for (i = 0; i < typecnt; ++i) - typemap[i] = writetype[i] ? thistypecnt++ : 0; + typemap[i] = writetype[i] ? thistypecnt++ : -1; for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i) indmap[i] = -1; thischarcnt = 0; @@ -1725,7 +1702,12 @@ writezone(const char *const name, const char *const string, char version) #undef DO for (i = thistimei; i < thistimelim; ++i) if (pass == 1) - puttzcode(ats[i], fp); + /* + ** Output an INT32_MIN "transition" + ** if appropriate--see above. + */ + puttzcode(((ats[i] < INT32_MIN) ? + INT32_MIN : ats[i]), fp); else puttzcode64(ats[i], fp); for (i = thistimei; i < thistimelim; ++i) { unsigned char uc; @@ -2104,11 +2086,6 @@ outzone(const struct zone * const zpfirst, const int zonecount) updateminmax(leapminyear); updateminmax(leapmaxyear + (leapmaxyear < ZIC_MAX)); } - /* - ** Reserve type 0. - */ - gmtoffs[0] = isdsts[0] = ttisstds[0] = ttisgmts[0] = abbrinds[0] = -1; - typecnt = 1; for (i = 0; i < zonecount; ++i) { zp = &zpfirst[i]; if (i < zonecount - 1) @@ -2208,8 +2185,7 @@ outzone(const struct zone * const zpfirst, const int zonecount) if (usestart) { addtt(starttime, type); usestart = FALSE; - } else if (stdoff != 0) - addtt(min_time, type); + } else addtt(min_time, type); } else for (year = min_year; year <= max_year; ++year) { if (useuntil && year > zp->z_untilrule.r_hiyear) break; |