Release 2018i - 2018-12-30 11:05:43 -0800

Briefly:
    São Tomé and Príncipe switches from +01 to +00 on 2019-01-01.

  Changes to future timestamps

    Due to a change in government, São Tomé and Príncipe switches back
    from +01 to +00 on 2019-01-01 at 02:00.  (Thanks to Vadim
    Nasardinov and Michael Deckers.)


Release 2018h - 2018-12-23 17:59:32 -0800

  Briefly:
    Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21.
    New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move.
    Metlakatla, Alaska observes PST this winter only.
    Guess Morocco will continue to adjust clocks around Ramadan.
    Add predictions for Iran from 2038 through 2090.

  Changes to future timestamps

    Guess that Morocco will continue to fall back just before and
    spring forward just after Ramadan, the practice since 2012.
    (Thanks to Maamar Abdelkader.)  This means Morocco will observe
    negative DST during Ramadan in main and vanguard formats, and in
    rearguard format it stays in the +00 timezone and observes
    ordinary DST in all months other than Ramadan.  As before, extend
    this guesswork to the year 2037.  As a consequence, Morocco is
    scheduled to observe three DST transitions in some Gregorian years
    (e.g., 2033) due to the mismatch between the Gregorian and Islamic
    calendars.

    The table of exact transitions for Iranian DST has been extended.
    It formerly cut off before the year 2038 in a nod to 32-bit time_t.
    It now cuts off before 2091 as there is doubt about how the Persian
    calendar will treat 2091.  This change predicts DST transitions in
    2038-9, 2042-3, and 2046-7 to occur one day later than previously
    predicted.  As before, post-cutoff transitions are approximated.

  Changes to past and future timestamps

    Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to
    +05 on 2018-12-21.  This is a zone split as Qostanay (aka
    Kostanay) did not switch, so create a zone Asia/Qostanay.

    Metlakatla moved from Alaska to Pacific standard time on 2018-11-04.
    It did not change clocks that day and remains on -08 this winter.
    (Thanks to Ryan Stanley.)  It will revert to the usual Alaska
    rules next spring, so this change affects only timestamps
    from 2018-11-04 through 2019-03-10.

  Change to past timestamps

    Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00,
    not 00:00.  I transcribed the time incorrectly from Shanks.
    (Thanks to Phake Nick.)

    Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00.
    (Thanks to Phake Nick.)

    Guam observed DST irregularly from 1959 through 1977.
    (Thanks to Phake Nick.)

    Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on
    10-01 changed standard time to +08:30 (not +08).  Its transition
    back to +08 after WWII was on 1945-09-15, not the previous day.
    Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT).
    (Thanks to Phake Nick, Steve Allen, and Joseph Myers.)  Also,
    its 1952 fallback was on 11-02 (not 10-25).

    This release contains many changes to timestamps before 1946 due
    to Japanese possession or occupation of Pacific/Chuuk,
    Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro,
    Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei.
    (Thanks to Phake Nick.)

    Assume that the Spanish East Indies was like the Philippines and
    observed American time until the end of 1844.  This affects
    Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei.

  Changes to past tm_isdst flags

    For the recent Morocco change, the tm_isdst flag should be 1 from
    2018-10-27 00:00 to 2018-10-28 03:00.  (Thanks to Michael Deckers.)
    Give a URL to the official decree.  (Thanks to Matt Johnson.)
This commit is contained in:
christos 2019-01-01 03:04:56 +00:00
parent 6d1a5ef08f
commit 76c767265c
9 changed files with 201 additions and 103 deletions

View File

@ -380,15 +380,18 @@ AWK= awk
# is typically nicer if it works.
KSHELL= /bin/bash
# Name of curl <https://curl.haxx.se/>, used for HTML validation.
CURL= curl
# The path where SGML DTDs are kept and the catalog file(s) to use when
# validating. The default should work on both Debian and Red Hat.
# validating HTML 4.01. The default should work on both Debian and Red Hat.
SGML_TOPDIR= /usr
SGML_DTDDIR= $(SGML_TOPDIR)/share/xml/w3c-sgml-lib/schema/dtd
SGML_SEARCH_PATH= $(SGML_DTDDIR)/REC-html401-19991224
SGML_CATALOG_FILES= \
$(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat:$(SGML_TOPDIR)/share/sgml/html/4.01/HTML4.cat
# The name, arguments and environment of a program to validate your web pages.
# The name, arguments and environment of a program to validate HTML 4.01.
# See <http://openjade.sourceforge.net/doc/> for a validator, and
# <https://validator.w3.org/source/> for a validation library.
# Set VALIDATE=':' if you do not have such a program.
@ -488,6 +491,7 @@ MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \
COMMON= calendars CONTRIBUTING LICENSE Makefile \
NEWS README theory.html version
WEB_PAGES= tz-art.html tz-how-to.html tz-link.html
CHECK_WEB_PAGES=check_tz-art.html check_tz-how-to.html check_tz-link.html
DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
PRIMARY_YDATA= africa antarctica asia australasia \
europe northamerica southamerica
@ -799,9 +803,15 @@ check_tzs: $(TZS) $(TZS_NEW)
fi
touch $@
# This checks only the HTML 4.01 strict page.
# To check the the other pages, use <https://validator.w3.org/>.
check_web: tz-how-to.html
check_web: $(CHECK_WEB_PAGES)
check_tz-art.html: tz-art.html
check_tz-link.html: tz-link.html
check_tz-art.html check_tz-link.html:
$(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \
-F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \
test ! -s $@.out || { cat $@.out; exit 1; }
mv $@.out $@
check_tz-how-to.html: tz-how-to.html
$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
touch $@
@ -1068,7 +1078,7 @@ zic.o: private.h tzfile.h version.h
.PHONY: ALL INSTALL all
.PHONY: check check_time_t_alternatives
.PHONY: check_zishrink
.PHONY: check_web check_zishrink
.PHONY: clean clean_misc dummy.zd force_tzs
.PHONY: install install_data maintainer-clean names
.PHONY: posix_only posix_packrat posix_right public

View File

@ -1,14 +1,103 @@
News for the tz database
Release 2018i - 2018-12-30 11:05:43 -0800
Briefly:
São Tomé and Príncipe switches from +01 to +00 on 2019-01-01.
Changes to future timestamps
Due to a change in government, São Tomé and Príncipe switches back
from +01 to +00 on 2019-01-01 at 02:00. (Thanks to Vadim
Nasardinov and Michael Deckers.)
Release 2018h - 2018-12-23 17:59:32 -0800
Briefly:
Qyzylorda, Kazakhstan moved from +06 to +05 on 2018-12-21.
New zone Asia/Qostanay because Qostanay, Kazakhstan didn't move.
Metlakatla, Alaska observes PST this winter only.
Guess Morocco will continue to adjust clocks around Ramadan.
Add predictions for Iran from 2038 through 2090.
Changes to future timestamps
Guess that Morocco will continue to fall back just before and
spring forward just after Ramadan, the practice since 2012.
(Thanks to Maamar Abdelkader.) This means Morocco will observe
negative DST during Ramadan in main and vanguard formats, and in
rearguard format it stays in the +00 timezone and observes
ordinary DST in all months other than Ramadan. As before, extend
this guesswork to the year 2037. As a consequence, Morocco is
scheduled to observe three DST transitions in some Gregorian years
(e.g., 2033) due to the mismatch between the Gregorian and Islamic
calendars.
The table of exact transitions for Iranian DST has been extended.
It formerly cut off before the year 2038 in a nod to 32-bit time_t.
It now cuts off before 2091 as there is doubt about how the Persian
calendar will treat 2091. This change predicts DST transitions in
2038-9, 2042-3, and 2046-7 to occur one day later than previously
predicted. As before, post-cutoff transitions are approximated.
Changes to past and future timestamps
Qyzylorda (aka Kyzylorda) oblast in Kazakhstan moved from +06 to
+05 on 2018-12-21. This is a zone split as Qostanay (aka
Kostanay) did not switch, so create a zone Asia/Qostanay.
Metlakatla moved from Alaska to Pacific standard time on 2018-11-04.
It did not change clocks that day and remains on -08 this winter.
(Thanks to Ryan Stanley.) It will revert to the usual Alaska
rules next spring, so this change affects only timestamps
from 2018-11-04 through 2019-03-10.
Change to past timestamps
Kwajalein's 1993-08-20 transition from -12 to +12 was at 24:00,
not 00:00. I transcribed the time incorrectly from Shanks.
(Thanks to Phake Nick.)
Nauru's 1979 transition was on 02-10 at 02:00, not 05-01 at 00:00.
(Thanks to Phake Nick.)
Guam observed DST irregularly from 1959 through 1977.
(Thanks to Phake Nick.)
Hong Kong observed DST in 1941 starting 06-15 (not 04-01), then on
10-01 changed standard time to +08:30 (not +08). Its transition
back to +08 after WWII was on 1945-09-15, not the previous day.
Its 1904-10-30 change took effect at 01:00 +08 (not 00:00 LMT).
(Thanks to Phake Nick, Steve Allen, and Joseph Myers.) Also,
its 1952 fallback was on 11-02 (not 10-25).
This release contains many changes to timestamps before 1946 due
to Japanese possession or occupation of Pacific/Chuuk,
Pacific/Guam, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro,
Pacific/Nauru, Pacific/Palau, and Pacific/Pohnpei.
(Thanks to Phake Nick.)
Assume that the Spanish East Indies was like the Philippines and
observed American time until the end of 1844. This affects
Pacific/Chuuk, Pacific/Kosrae, Pacific/Palau, and Pacific/Pohnpei.
Changes to past tm_isdst flags
For the recent Morocco change, the tm_isdst flag should be 1 from
2018-10-27 00:00 to 2018-10-28 03:00. (Thanks to Michael Deckers.)
Give a URL to the official decree. (Thanks to Matt Johnson.)
Release 2018g - 2018-10-26 22:22:45 -0700
Briefly:
Morocco switches to permanent +01 on 2018-10-27.
Morocco switches to permanent +01 on 2018-10-28.
Changes to future timestamps
Morocco switches from +00/+01 to permanent +01 effective 2018-10-27,
so its clocks will not fall back on 2018-10-28 as previously scheduled.
Morocco switches from +00/+01 to permanent +01 effective 2018-10-28,
so its clocks will not fall back as previously scheduled.
(Thanks to Mohamed Essedik Najd and Brian Inglis.)
Changes to code
@ -119,7 +208,7 @@ Release 2018f - 2018-10-18 00:14:18 -0700
localtime.c no longer ignores TZif POSIX-style TZ strings that
specify only standard time. Instead, these TZ strings now
override the default time type for timestamps after the last
transition (or for all time stamps if there are no transitions),
transition (or for all timestamps if there are no transitions),
just as DST strings specifying DST have always done.
leapseconds.awk now outputs "#updated" and "#expires" comments,

View File

@ -1,4 +1,4 @@
/* $NetBSD: localtime.c,v 1.113 2018/10/19 23:05:35 christos Exp $ */
/* $NetBSD: localtime.c,v 1.114 2019/01/01 03:04:56 christos Exp $ */
/* Convert timestamp from time_t to struct tm. */
@ -12,7 +12,7 @@
#if 0
static char elsieid[] = "@(#)localtime.c 8.17";
#else
__RCSID("$NetBSD: localtime.c,v 1.113 2018/10/19 23:05:35 christos Exp $");
__RCSID("$NetBSD: localtime.c,v 1.114 2019/01/01 03:04:56 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@ -461,6 +461,7 @@ tzloadbody(char const *name, struct state *sp, bool doextend,
doaccess = name[0] == '/';
#endif
if (!doaccess) {
char const *dot;
size_t namelen = strlen(name);
if (sizeof lsp->fullname - sizeof tzdirslash <= namelen)
return ENAMETOOLONG;
@ -471,9 +472,16 @@ tzloadbody(char const *name, struct state *sp, bool doextend,
memcpy(lsp->fullname, tzdirslash, sizeof tzdirslash);
strcpy(lsp->fullname + sizeof tzdirslash, name);
/* Set doaccess if '.' (as in "../") shows up in name. */
if (strchr(name, '.'))
doaccess = true;
/* Set doaccess if NAME contains a ".." file name
component, as such a name could read a file outside
the TZDIR virtual subtree. */
for (dot = name; (dot = strchr(dot, '.')); dot++)
if ((dot == name || dot[-1] == '/') && dot[1] == '.'
&& (dot[2] == '/' || !dot[2])) {
doaccess = true;
break;
}
name = lsp->fullname;
}
if (doaccess && access(name, R_OK) != 0)
@ -829,7 +837,7 @@ static const int year_lengths[2] = {
** Return a pointer to that character.
*/
static const char *
static ATTRIBUTE_PURE const char *
getzname(const char *strp)
{
char c;
@ -850,7 +858,7 @@ getzname(const char *strp)
** We don't do any checking here; checking is done later in common-case code.
*/
static const char *
static ATTRIBUTE_PURE const char *
getqzname(const char *strp, const int delim)
{
int c;

View File

@ -406,7 +406,7 @@ in decreasing order of importance:
EAT East Africa,
EST/EDT/EWT/EPT/EDDT Eastern [North America],
EET/EEST Eastern European,
GST Guam,
GST/GDT Guam,
HST/HDT/HWT/HPT Hawaii,
HKT/HKST Hong Kong,
IST India,
@ -1238,7 +1238,7 @@ Some people's work schedules
use <a href="https://en.wikipedia.org/wiki/Timekeeping_on_Mars">Mars time</a>.
Jet Propulsion Laboratory (JPL) coordinators kept Mars time on
and off during the
<a href="https://en.wikipedia.org/wiki/Mars_Pathfinder#End_of_mission">Mars
<a href="https://en.wikipedia.org/wiki/Mars_Pathfinder">Mars
Pathfinder</a> mission.
Some of their family members also adapted to Mars time.
Dozens of special Mars watches were built for JPL workers who kept
@ -1261,8 +1261,7 @@ meridian</a> of Mars goes through the center of the crater
honor of the British astronomer who built the Greenwich telescope that
defines Earth's prime meridian.
Mean solar time on the Mars prime meridian is
called <a href="https://en.wikipedia.org/wiki/Mars_Coordinated_Time">Mars
Coordinated Time (<abbr>MTC</abbr>)</a>.
called Mars Coordinated Time (<abbr>MTC</abbr>).
</p>
<p>

View File

@ -36,19 +36,15 @@ there is a reference to British Double Summer Time.
The time does not play a large part in the plot;
it's just a passing reference to the time when one of the
characters was supposed to have died (but didn't).
The IMDb page is at
<a href="http://us.imdb.com/title/tt0038733/">
http://us.imdb.com/title/tt0038733/
</a>. (Dave Cantor)
(<a href="http://us.imdb.com/title/tt0038733/">IMDb entry.</a>)
(Dave Cantor)
<li>
The 1953 railway comedy movie <em>The Titfield Thunderbolt</em> includes a
play on words on British Double Summer Time. Valentine's wife wants
him to leave the pub and asks him, "Do you know what time it is?"
And he, happy where he is, replies: "Yes, my love. Summer double time."
IMDb page:
<a href="http://us.imdb.com/title/tt0046436/">
http://us.imdb.com/title/tt0046436/
</a>. (Mark Brader, 2009-10-02)
(<a href="http://us.imdb.com/title/tt0046436/">IMDb entry.</a>)
(Mark Brader, 2009-10-02)
</li>
<li>
The premise of the 1999 caper movie <em>Entrapment</em> involves computers
@ -60,10 +56,8 @@ a gigantic computerized theft. To achieve this, at one location the
crooks interfere with the microwave system supplying time signals to
the computer, advancing the time by 0.1 second each minute over the
last hour of 1999. (So this movie teaches us that 0.1 &times; 60 = 10.)
IMDb page:
<a href="http://us.imdb.com/title/tt0137494/">
http://us.imdb.com/title/tt0137494/
</a>. (Mark Brader, 2009-10-02)
(<a href="http://us.imdb.com/title/tt0137494/">IMDb entry.</a>)
(Mark Brader, 2009-10-02)
</li>
<li>
One mustn't forget the
@ -79,12 +73,15 @@ Cube," first aired 1958-02-24, had Superman convincing the controllers
of the Arlington Time Signal to broadcast ahead of actual time;
doing so got a crook trying to be declared dead to
emerge a bit too early from the titular enclosure.
(<a href="https://www.imdb.com/title/tt0506628/">IMDb entry</a>.)
</li>
<li>
"The Chimes of Big Ben", <em>The Prisoner</em>, episode 2, ITC, 1967-10-06.
"<a href="https://en.wikipedia.org/wiki/The_Chimes_of_Big_Ben">The Chimes
of Big Ben</a>", <em>The Prisoner</em>, episode 2, ITC, 1967-10-06.
Our protagonist tumbles to
the fraudulent nature of a Poland-to-England escape upon hearing "Big
Ben" chiming on Polish local time.
(<a href="https://www.imdb.com/title/tt0679185/">IMDb entry.</a>)
</li>
<li>
"The Susie", <em>Seinfeld</em>, season 8, episode 15, NBC, 1997-02-13.
@ -196,7 +193,9 @@ Nick Enright, <em>Daylight Saving</em>, 1989.
A fast-paced comedy about love and loneliness as the clocks turn back.
</li>
<li>
Umberto Eco, <em>The Island of the Day Before</em>
Umberto Eco,
<a href="https://en.wikipedia.org/wiki/The_Island_of_the_Day_Before"><em>The
Island of the Day Before</em></a>
(<em>L'isola del giorno prima</em>), 1994.
"...the story of a 17th century Italian nobleman trapped near an island
on the International Date Line. Time and time zones play an integral

View File

@ -189,8 +189,8 @@ href="http://userguide.icu-project.org/datetime/timezone"><abbr
title="International Components for Unicode">ICU</abbr></a>,
<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr></a>
and <a
href="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a>
Java, <a href="http://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a>
Java, <a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
href="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
and <a
href="https://nodatime.org/userguide/tzdb">Noda Time</a> (see below).
@ -318,11 +318,12 @@ database conversion utility</a> is like Vzic, except for the <a
href="https://www.microsoft.com/net">.NET framework</a>
and with a <abbr>BSD</abbr>-style license.</li>
<li><a
href="http://search.cpan.org/dist/DateTime-TimeZone/">DateTime::TimeZone</a>
href="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
contains a script <code>parse_olson</code> that compiles
<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
modules. It is part of the Perl <a
href="http://datetime.perl.org">DateTime Project</a>, which is freely
href="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
which is freely
available under both the <abbr>GPL</abbr> and the Perl Artistic
License. DateTime::TimeZone also contains a script
<code>tests_from_zdump</code> that generates test cases for each clock
@ -357,25 +358,28 @@ freely available under the <abbr>MIT</abbr> license.</li>
<li>Java-based compilers and libraries include:
<ul>
<li>The <a
href="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater
href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater
tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
Oracle Java.</li>
<li>The <a
href="http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
8 <code>java.time</code> <abbr>API</abbr></a> can be supplemented by <a
href="http://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
href="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
SE <code>java.time</code> <abbr>API</abbr></a> in Java 8 and later
can be supplemented by <a
href="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
which is freely available under a <abbr>BSD</abbr>-style license.</li>
<li><a href="http://www.joda.org/joda-time/">Joda-Time &ndash; Java date
<li><a href="https://www.joda.org/joda-time/">Joda-Time &ndash; Java date
and time <abbr>API</abbr></a> contains a class
<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
<code><abbr>tz</abbr></code> source into a binary format. It inspired
Java 8 <code>java.time</code>, which its users should migrate to once
they can assume Java 8 or later. It is available under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
<li><a href="https://github.com/MenoData/Time4J/">Time4J &ndash;
Advanced date, time and interval library for Java</a> contains a class
<code>net.time4j.tool.TimezoneRepositoryCompiler</code> that compiles
<code><abbr>tz</abbr></code> source into a binary format. Time4J is
<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
time library for Android</a> and
<a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date,
time and interval library for Java</a> compile
<code><abbr>tz</abbr></code> source into a binary format.
Time4A is available under the Apache License and Time4J is
available under the <a
href="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
General Public License (<abbr title="Lesser General Public
@ -385,11 +389,8 @@ Java-based libraries.</li>
</ul>
<li><a href="https://nodatime.org">Noda Time &ndash; Date and
time <abbr>API</abbr> for .NET</a>
and <a href="http://www.babiej.demon.nl/Tz4Net/main.htm">TZ4Net</a>
are similar to Joda-Time and Time4J, but for the .NET framework instead of
Java. They are freely available under the
Apache License
and a <abbr>BSD</abbr>-style license, respectively.</li>
is like Joda-Time and Time4J, but for the .NET framework instead of Java.
It is freely available under the Apache License.</li>
<li><a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>-based
compilers and libraries include:
<ul>
@ -483,7 +484,7 @@ JavaScript library that supports date arithmetic that is time zone
aware. It is freely available under the <abbr>MIT</abbr> license.</li>
<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
<abbr>TZif</abbr> file reader.</li>
<li><a href="http://search.cpan.org/perldoc?DateTime::TimeZone::Tzfile">
<li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
DateTime::TimeZone::Tzfile</a>
is a <abbr>TZif</abbr> file reader written in Perl.
It is freely available under the same terms as Perl
@ -550,8 +551,8 @@ Java</a> contains a copy of a subset of a recent
Java-specific format.</li>
<li><a href="https://relativedata.com/page/Time-Zone-Master">Time Zone
Master</a> is a Microsoft Windows clock program that can automatically
download, compile and use <code>tz</code> releases. The Basic version
is free.</li>
download, compile and use <code><abbr>tz</abbr></code> releases.
The Basic version is free.</li>
<li><a
href="http://veladg.com/velaterra.html">VelaTerra</a> is
a macOS program. Its developers
@ -561,11 +562,17 @@ licenses</a> to <code><abbr>tz</abbr></code> contributors.</li>
<h2 id="other-dbs">Other time zone databases</h2>
<ul>
<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
is Astrodienst's Web version of Shanks and Pottenger's
time zone history atlases also published in <a
is Astrodienst's Web version of Shanks and Pottenger's out-of-print
time zone history atlases
<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
<a href="https://www.worldcat.org/oclc/76950459">for the world</a>,
now published in <a
href="https://astrocom.com/astrology-products/software/acs-atlas-software">software</a>
form by <a href="https://astrocom.com">ACS-Starcrafts</a>.
These atlases are extensive but unreliable, as Shanks appears to have
Although these extensive atlases
<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
sources for much of the older <code><abbr>tz</abbr></code> data</a>,
they are unreliable as Shanks appears to have
guessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
sources and do not indicate which entries are guesswork.</li>
<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
@ -612,8 +619,6 @@ where the two differ greatly. It's a bit out of date, unfortunately.</li>
from several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a>
services and other sources.</p>
<ul>
<li>Databases of time zone boundaries include:
<ul>
<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
Boundary Builder</a> extracts
<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
@ -622,21 +627,6 @@ Its code is freely available under the <abbr>MIT</abbr> license, and
its data entries are freely available under the
<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
Open Database License</a>. The maps' borders appear to be quite accurate.</li>
<li><a href="http://efele.net/maps/tz/"><abbr>TZ</abbr> timezones
maps</a> contains <a
href="https://en.wikipedia.org/wiki/Shapefile">shapefiles</a> of
sets of <code><abbr>tzdb</abbr></code> timezones. This includes
<a href="http://efele.net/maps/tz/world/">tz_world</a>, a shapefile
for all the world's timezones. These maps are no longer maintained and
are superseded by the Timezone Boundary Builder.</li>
<li><a
href="https://github.com/straup/whereonearth-timezone">Whereonearth-timezone</a>
is in <a href="https://tools.ietf.org/html/rfc7946">GeoJSON</a> format
(Internet <abbr>RFC</abbr> 7946), and combines the
the tz_world shapefiles with the
<a href="https://developer.yahoo.com/geo/geoplanet/">GeoPlanet</a>
dataset.</li>
</ul></li>
<li>Programmatic interfaces that map geographical coordinates via tz_world to
<code><abbr>tzdb</abbr></code> timezones include:
<ul>
@ -661,13 +651,13 @@ library for Python is freely available under the MIT license.
<li>The <a
href="https://github.com/gunyarakun/timezone_finder">timezone_finder</a>
library for Ruby is freely available under the MIT license.</li>
<li><a href="https://derickrethans.nl/what-time-is-it.html">What Time
is It Here?</a> applies MongoDB
geospatial query operators to shapefiles' data.</li>
</ul></li>
<li>Free access via a network API, if you register a key, is provided by
the <a href="http://www.geonames.org/export/web-services.html#timezone">GeoNames Timezone web service</a>,
the <a href="https://developers.google.com/maps/documentation/timezone/intro">Google Maps Time Zone API</a>, and
the <a
href="https://www.geonames.org/export/web-services.html#timezone">GeoNames
Timezone web service</a>, the <a
href="https://developers.google.com/maps/documentation/timezone/intro">Google
Maps Time Zone API</a>, and
the <a href="https://timezonedb.com">Time Zone Database &amp; API</a>.
Commercial network API access is provided
by <a href="https://askgeo.com">AskGeo</a>
@ -703,15 +693,16 @@ common.</li>
<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
Walk through Time</a>
surveys the evolution of timekeeping.</li>
<li><a href="http://www.webexhibits.org/daylightsaving/">About Daylight
Saving Time &ndash; History, rationale, laws &amp; dates</a>
is an overall history of <abbr>DST</abbr>.</li>
<li>The history of daylight saving time is surveyed in <a
href="http://www.webexhibits.org/daylightsaving/">About Daylight
Saving Time &ndash; History, rationale, laws &amp; dates</a> and summarized in
<a href="http://seizethedaylight.com/dst/">A Brief
History of Daylight Saving Time</a>.</li>
<li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
Lords</a> discusses how authoritarians manipulate civil time.</li>
<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
contains guidelines and best practices for software applications that
deal with civil time.</li>
<li><a href="http://seizethedaylight.com/dst/">A Brief
History of Daylight Saving Time</a> summarizes some of the contentious
history of <abbr>DST</abbr>.</li>
<li><a href="https://www.staff.science.uu.nl/~gent0113/idl/idl.htm">A History of
the International Date Line</a> tells the story of the most important
time zone boundary.</li>
@ -729,7 +720,7 @@ href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementat
Dates of Daylight Savings Time within Australia</a>.</dd>
<dt>Belgium</dt>
<dd>The Royal Observatory of Belgium maintains a table of <a
href="http://www.astro.oma.be/GENERAL/INFO/nli001a.html"
href="https://www.astro.oma.be/GENERAL/INFO/nli001a.html"
hreflang="nl">time in Belgium (in Dutch)</a>.</dd>
<dt>Brazil</dt>
<dd>The Time Service Department of the National Observatory
@ -743,7 +734,7 @@ href="https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html">time
zones &amp; daylight saving time</a>.</dd>
<dt>Chile</dt>
<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
<a href="http://www.horaoficial.cl/historia_hora.html" hreflang="es">history of
<a href="https://www.horaoficial.cl/historia_hora.html" hreflang="es">history of
Chile's official time (in Spanish)</a>.</dd>
<dt>China</dt>
<dd>The Hong Kong Observatory maintains a
@ -767,8 +758,8 @@ href="ftp://ftp.cs.huji.ac.il/pub/tz/announcements"
hreflang="he">announcements (in Hebrew)</a>.</dd>
<dt>Italy</dt>
<dd>The National Institute of Metrological Research maintains a
<a href="http://oldsite.inrim.it/res/tf/ora_legale_i.shtml">table of civil time
(in Italian)</a>.</dd>
<a href="http://oldsite.inrim.it/res/tf/ora_legale_i.shtml" hreflang="it">table
of civil time (in Italian)</a>.</dd>
<dt>Malaysia</dt>
<dd>See Singapore <a href="#Singapore">below</a>.</dd>
<dt>Mexico</dt>
@ -871,14 +862,14 @@ href="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
title="International Earth Rotation and Reference Systems Service">IERS</abbr>
Bulletins</a> contains official publications of the International
Earth Rotation and Reference Systems Service, which decides when leap
seconds occur. The <code>tz</code> code and data support leap seconds
seconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
via an optional "<code>right</code>" configuration, as opposed to the
default "<code>posix</code>" configuration.</li>
<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
discusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
leap second so that they disagree with <abbr>UTC</abbr> by at most a
half second, even though every <abbr>POSIX</abbr> minute has exactly
sixty seconds. This approach works with the default <code>tz</code>
sixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
"<code>posix</code>" configuration, is <a
href="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
the <abbr>NTP</abbr> reference implementation, and is used by major

View File

@ -1 +1 @@
2018g
2018i

View File

@ -1,4 +1,4 @@
/* $NetBSD: zdump.c,v 1.50 2018/10/19 23:05:35 christos Exp $ */
/* $NetBSD: zdump.c,v 1.51 2019/01/01 03:04:56 christos Exp $ */
/* Dump time zone data in a textual format. */
/*
@ -8,7 +8,7 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: zdump.c,v 1.50 2018/10/19 23:05:35 christos Exp $");
__RCSID("$NetBSD: zdump.c,v 1.51 2019/01/01 03:04:56 christos Exp $");
#endif /* !defined lint */
#ifndef NETBSD_INSPIRED
@ -810,8 +810,10 @@ my_snprintf(char *s, size_t size, char const *format, ...)
arglen = strlen(arg);
} else {
n = vsprintf(buf, format, args);
if (n < 0)
if (n < 0) {
va_end(args);
return n;
}
arg = buf;
arglen = n;
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: zic.c,v 1.72 2018/10/27 22:29:24 christos Exp $ */
/* $NetBSD: zic.c,v 1.73 2019/01/01 03:04:56 christos Exp $ */
/*
** This file is in the public domain, so clarified as of
** 2006-07-17 by Arthur David Olson.
@ -10,7 +10,7 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: zic.c,v 1.72 2018/10/27 22:29:24 christos Exp $");
__RCSID("$NetBSD: zic.c,v 1.73 2019/01/01 03:04:56 christos Exp $");
#endif /* !defined lint */
#include "private.h"
@ -2780,7 +2780,7 @@ error(_("can't determine time zone abbreviation to use just after until time"));
if (attypes[i].at > lastat->at)
lastat = &attypes[i];
if (lastat->at < rpytime(&xr, max_year - 1)) {
addtt(rpytime(&xr, max_year + 1), typecnt-1);
addtt(rpytime(&xr, max_year + 1), lastat->type);
attypes[timecnt - 1].dontmerge = true;
}
}
@ -2999,7 +2999,7 @@ lowerit(char a)
}
/* case-insensitive equality */
static bool
static ATTRIBUTE_PURE bool
ciequal(const char *ap, const char *bp)
{
while (lowerit(*ap) == lowerit(*bp++))
@ -3008,7 +3008,7 @@ ciequal(const char *ap, const char *bp)
return false;
}
static bool
static ATTRIBUTE_PURE bool
itsabbr(const char *abbr, const char *word)
{
if (lowerit(*abbr) != lowerit(*word))
@ -3024,7 +3024,7 @@ itsabbr(const char *abbr, const char *word)
/* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case. */
static bool
static ATTRIBUTE_PURE bool
ciprefix(char const *abbr, char const *word)
{
do