Paul Eggert wrote:
We could distinguish "time zone" in the usual English-language sense (a set of geographic locations that currently share the same standard time offset from UTC) from "timezone" in the POSIX sense (a history and predicted future of UTC offsets, abbreviations and isdst flags). If so, the tzdb documentation could be more careful about using "time zone" for the former and "timezone" for the latter, and this would make for fewer changes to the GNU/Linux man-pages for tzdb. I can look into this and propose an updated set of tzdb-related patches accordingly.
I've done that, plus a few other minor fixups, and have installed the attached proposed patches into the development tzdb repository on GitHub. I plan to follow up by emailing to linux-man a corresponding set of patches to the GNU/Linux man pages.
From 13980693084c36e0275828d8d46d9d9e8975be0d Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@xxxxxxxxxxx> Date: Wed, 27 Jun 2018 11:24:09 -0700 Subject: [PROPOSED 1/3] =?UTF-8?q?Use=20=E2=80=9Ctimezone=E2=80=9C=20for?= =?UTF-8?q?=20timestamp=20histories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The POSIX standard uses the spelling “timezone”, and often uses it to mean a TZ setting that determines the past and predicted future of UT offsets, time zone abbreviations, and tm_isdst flags. In contrast, in popular usage by far the most common spelling is “time zone”, and it typically means a maximal geographic region of clocks that currently have the same standard time. As these two quite-different meanings are often confused, attempt to disambiguate things a bit by consistently using “timezone” for the former meaning and “time zone” for the latter. This affects documentation and a few diagnostic messages. --- Makefile | 22 +++++++------- NEWS | 22 ++++++++------ backward | 2 +- date.1 | 4 +-- etcetera | 2 +- factory | 4 +-- localtime.c | 25 ++++++++-------- newctime.3 | 8 ++--- newstrftime.3 | 5 ++-- newtzset.3 | 16 +++++----- strftime.c | 3 +- theory.html | 93 ++++++++++++++++++++++++++++++++++------------------------ tz-how-to.html | 2 +- tz-link.html | 24 +++++++-------- tzfile.5 | 18 ++++++------ tzselect.8 | 12 ++++---- tzselect.ksh | 18 +++++------- zdump.8 | 16 +++++----- zdump.c | 2 +- zic.8 | 38 +++++++++++++----------- zone.tab | 12 ++++---- zone1970.tab | 28 +++++++++--------- 22 files changed, 200 insertions(+), 176 deletions(-) diff --git a/Makefile b/Makefile index 29058e5..9e3b8f9 100644 --- a/Makefile +++ b/Makefile @@ -19,9 +19,9 @@ BUGEMAIL= tz@xxxxxxxx # DATAFORM= rearguard DATAFORM= main -# Change the line below for your time zone (after finding the zone you want in -# the time zone files, or adding it to a time zone file). -# Alternatively, if you discover you've got the wrong time zone, you can just +# Change the line below for your timezone (after finding the one you want in +# one of the $(TDATA) source files, or adding it to a source file). +# Alternatively, if you discover you've got the wrong timezone, you can just # zic -l rightzone # to correct things. # Use the command @@ -31,14 +31,14 @@ DATAFORM= main LOCALTIME= GMT # If you want something other than Eastern United States time as a template -# for handling POSIX-style time zone environment variables, -# change the line below (after finding the zone you want in the -# time zone files, or adding it to a time zone file). +# for handling POSIX-style timezone environment variables, +# change the line below (after finding the timezone you want in the +# one of the $(TDATA) source files, or adding it to a source file). # When a POSIX-style environment variable is handled, the rules in the # template file are used to determine "spring forward" and "fall back" days and # times; the environment variable itself specifies UT offsets of standard and # daylight saving time. -# Alternatively, if you discover you've got the wrong time zone, you can just +# Alternatively, if you discover you've got the wrong timezone, you can just # zic -p rightzone # to correct things. # Use the command @@ -75,7 +75,7 @@ DESTDIR = # TOPDIR should be empty or an absolute name unless you're just testing. TOPDIR = -# The default local time zone is taken from the file TZDEFAULT. +# The default local timezone is taken from the file TZDEFAULT. TZDEFAULT = $(TOPDIR)/etc/localtime # The subdirectory containing installed program and data files, and @@ -84,7 +84,7 @@ TZDEFAULT = $(TOPDIR)/etc/localtime USRDIR = usr USRSHAREDIR = $(USRDIR)/share -# "Compiled" time zone information is placed in the "TZDIR" directory +# "Compiled" timezone information is placed in the "TZDIR" directory # (and subdirectories). # TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty. TZDIR_BASENAME= zoneinfo @@ -298,7 +298,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # "tzsetwall", "offtime", "timelocal", "timegm", "timeoff", # "posix2time", and "time2posix" to be added to the time conversion library. # "tzsetwall" is like "tzset" except that it arranges for local wall clock -# time (rather than the time specified in the TZ environment variable) +# time (rather than the timezone specified in the TZ environment variable) # to be used. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. @@ -321,7 +321,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # "posix2time_z" and "time2posix_z" are added as well. # The functions ending in "_z" (or "_rz") are like their unsuffixed # (or suffixed-by-"_r") counterparts, except with an extra first -# argument of opaque type timezone_t that specifies the time zone. +# argument of opaque type timezone_t that specifies the timezone. # "tzalloc" allocates a timezone_t value, and "tzfree" frees it. # # If you want to allocate state structures in localtime, add diff --git a/NEWS b/NEWS index 5296542..4ebb5f7 100644 --- a/NEWS +++ b/NEWS @@ -64,6 +64,10 @@ Unreleased, experimental changes tzfile.5 now documents what time types apply before the first and after the last transition, if any. + Documentation now uses the spelling "timezone" for a TZ setting + that determines timestamp history, and "time zone" for a + geographic region currently sharing the same standard time. + The name "TZif" is now used for the tz binary data format. tz-link.htm now mentions the A0 TimeZone Migration utilities. @@ -607,7 +611,7 @@ Release 2017b - 2017-03-17 07:30:38 -0700 The reference localtime implementation now falls back on the current US daylight-saving transition rules rather than the 1987-2006 rules. This fallback occurs only when (1) the TZ - environment variable's value has a name like "AST4ADT" that asks + environment variable has a value like "AST4ADT" that asks for daylight saving time but does not specify the rules, (2) there is no file by that name, and (3) the TZDEFRULES file cannot be loaded. (Thanks to Tom Lane.) @@ -1762,7 +1766,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 Unless NETBSD_INSPIRED is defined to 0, the tz library now supplies functions for creating and using objects that represent - time zones. The new functions are tzalloc, tzfree, localtime_rz, + timezones. The new functions are tzalloc, tzfree, localtime_rz, mktime_z, and (if STD_INSPIRED is also defined) posix2time_z and time2posix_z. They are intended for performance: for example, localtime_rz (unlike localtime_r) is trivially thread-safe without @@ -1776,7 +1780,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 TZDOBJS=zdump.o CHECK_TIME_T_ALTERNATIVES='. zdump now uses localtime_rz if available, as it's significantly faster, - and it can help zdump better diagnose invalid time zone names. + and it can help zdump better diagnose invalid timezone names. Define HAVE_LOCALTIME_RZ to 0 to suppress this. HAVE_LOCALTIME_RZ defaults to 1 if NETBSD_INSPIRED && USE_LTZ. When localtime_rz is not available, zdump now uses localtime_r and tzset if available, @@ -1792,7 +1796,7 @@ Release 2014g - 2014-08-28 12:31:23 -0700 invalid or outlandish input. The tz library no longer mishandles leap seconds on platforms with - unsigned time_t in time zones that lack ordinary transitions after 1970. + unsigned time_t in timezones that lack ordinary transitions after 1970. The tz code now attempts to infer TM_GMTOFF and TM_ZONE if not already defined, to make it easier to configure on common platforms. @@ -3570,7 +3574,7 @@ Release 2005j - 2005-06-13 14:34:13 -0400 These reflect changes to limit the length of time zone abbreviations and the characters used in those abbreviations. - There are also changes to handle POSIX-style "quoted" time zone + There are also changes to handle POSIX-style "quoted" timezone environment variables. The changes were circulated on the time zone mailing list; the only @@ -3896,7 +3900,7 @@ Release 1999f - 1999-09-23 09:48:14 -0400 Release 1999e - 1999-08-17 15:20:54 -0400 changes circulated by Paul Eggert, although the change to handling - of DST-specifying time zone names has been commented out for now + of DST-specifying timezone names has been commented out for now (search for "XXX" in "localtime.c" for details). These files also do not make any changes to the start of DST in Brazil. @@ -4021,7 +4025,7 @@ Release code1997i-data1997k - 1997-12-29 09:53:41 -0500 Release code1997h-data1997j - 1997-12-18 17:47:35 -0500 - minor changes to put "TZif" at the start of each time zone information file + minor changes to put "TZif" at the start of each timezone information file a rule has also been added to the Makefile so you can make zones @@ -4531,8 +4535,8 @@ consisting of a single tarball tzdb-R.tar.lz with extra data. Release timestamps are taken from the release's commit (for newer, Git-based releases), from the newest file in the tarball (for older releases, where this info is available) or from the email announcing -the release (if all else fails; these are marked with a time zone of --0000 and an "is missing!" comment). +the release (if all else fails; these are marked with a time zone +abbreviation of -0000 and an "is missing!" comment). Earlier versions of the code and data were not announced on the tz list and are not summarized here. diff --git a/backward b/backward index 2141f0d..a455044 100644 --- a/backward +++ b/backward @@ -1,7 +1,7 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This file provides links between current names for time zones +# This file provides links between current names for timezones # and their old names. Many names changed in late 1993. # Link TARGET LINK-NAME diff --git a/date.1 b/date.1 index 28dc1d7..6e79cc1 100644 --- a/date.1 +++ b/date.1 @@ -146,11 +146,11 @@ should be an integer, either decimal, octal (leading 0), or hexadecimal (leading 0x), preceded by an optional sign. .SH FILES .ta \w'/usr/share/zoneinfo/posixrules\0\0'u -/etc/localtime local time zone file +/etc/localtime local timezone file .br /usr/lib/locale/\f2L\fP/LC_TIME description of time locale \f2L\fP .br -/usr/share/zoneinfo time zone information directory +/usr/share/zoneinfo timezone information directory .br /usr/share/zoneinfo/posixrules used with POSIX-style TZ's .br diff --git a/etcetera b/etcetera index f5fa4c9..1a59630 100644 --- a/etcetera +++ b/etcetera @@ -3,7 +3,7 @@ # These entries are mostly present for historical reasons, so that # people in areas not otherwise covered by the tz files could "zic -l" -# to a time zone that was right for their area. These days, the +# to a timezone that was right for their area. These days, the # tz files cover almost all the inhabited world, and the only practical # need now for the entries that are not on UTC are for ships at sea # that cannot use POSIX TZ settings. diff --git a/factory b/factory index 75fa4a1..5f0573d 100644 --- a/factory +++ b/factory @@ -1,8 +1,8 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# For distributors who don't want to put time zone specification in -# their installation procedures. Users that run 'date' will get the +# For distributors who don't want to specify a timezone in their +# installation procedures. Users who run 'date' will get the # time zone abbreviation "-00", indicating that the actual time zone # is unknown. diff --git a/localtime.c b/localtime.c index f205363..b217865 100644 --- a/localtime.c +++ b/localtime.c @@ -300,7 +300,7 @@ settzname(void) return; } /* - ** And to get the latest zone names into tzname. . . + ** And to get the latest time zone abbreviations into tzname. . . */ for (i = 0; i < sp->typecnt; ++i) { register const struct ttinfo * const ttisp = &sp->ttis[i]; @@ -774,9 +774,9 @@ static const int year_lengths[2] = { }; /* -** Given a pointer into a time zone string, scan until a character that is not -** a valid character in a zone name is found. Return a pointer to that -** character. +** Given a pointer into a timezone string, scan until a character that is not +** a valid character in a time zone abbreviation is found. +** Return a pointer to that character. */ static const char * @@ -791,8 +791,9 @@ getzname(register const char *strp) } /* -** Given a pointer into an extended time zone string, scan until the ending -** delimiter of the zone name is located. Return a pointer to the delimiter. +** Given a pointer into an extended timezone string, scan until the ending +** delimiter of the time zone abbreviation is located. +** Return a pointer to the delimiter. ** ** As with getzname above, the legal character set is actually quite ** restricted, with other characters producing undefined results. @@ -810,7 +811,7 @@ getqzname(register const char *strp, const int delim) } /* -** Given a pointer into a time zone string, extract a number from that string. +** Given a pointer into a timezone string, extract a number from that string. ** Check that the number is within a specified range; if it is not, return ** NULL. ** Otherwise, return a pointer to the first character not part of the number. @@ -838,7 +839,7 @@ getnum(register const char *strp, int *const nump, const int min, const int max) } /* -** Given a pointer into a time zone string, extract a number of seconds, +** Given a pointer into a timezone string, extract a number of seconds, ** in hh[:mm[:ss]] form, from the string. ** If any error occurs, return NULL. ** Otherwise, return a pointer to the first character not part of the number @@ -879,7 +880,7 @@ getsecs(register const char *strp, int_fast32_t *const secsp) } /* -** Given a pointer into a time zone string, extract an offset, in +** Given a pointer into a timezone string, extract an offset, in ** [+-]hh[:mm[:ss]] form, from the string. ** If any error occurs, return NULL. ** Otherwise, return a pointer to the first character not part of the time. @@ -904,7 +905,7 @@ getoffset(register const char *strp, int_fast32_t *const offsetp) } /* -** Given a pointer into a time zone string, extract a rule in the form +** Given a pointer into a timezone string, extract a rule in the form ** date[/time]. See POSIX section 8 for the format of "date" and "time". ** If a valid rule is not found, return NULL. ** Otherwise, return a pointer to the first character not part of the rule. @@ -1106,7 +1107,7 @@ tzparse(const char *name, struct state *sp, bool lastditch) } else { dstname = name; name = getzname(name); - dstlen = name - dstname; /* length of DST zone name */ + dstlen = name - dstname; /* length of DST abbr. */ } if (!dstlen) return false; @@ -1450,7 +1451,7 @@ tzfree(timezone_t sp) ** ** If successful and SETNAME is nonzero, ** set the applicable parts of tzname, timezone and altzone; -** however, it's OK to omit this step if the time zone is POSIX-compatible, +** however, it's OK to omit this step if the timezone is POSIX-compatible, ** since in that case tzset should have already done this step correctly. ** SETNAME's type is intfast32_t for compatibility with gmtsub, ** but it is actually a boolean and its value should be 0 or 1. diff --git a/newctime.3 b/newctime.3 index d4645ad..565e89a 100644 --- a/newctime.3 +++ b/newctime.3 @@ -187,7 +187,7 @@ and are like their unsuffixed counterparts, except that they accept an extra initial .B zone -argument specifying the time zone to be used for conversion. +argument specifying the timezone to be used for conversion. If .B zone is null, UT is used; otherwise, @@ -252,9 +252,9 @@ There is no guarantee that these fields and this variable will continue to exist in this form in future releases of this code. .SH FILES .ta \w'/usr/share/zoneinfo/posixrules\0\0'u -/usr/share/zoneinfo time zone information directory +/usr/share/zoneinfo timezone information directory .br -/usr/share/zoneinfo/localtime local time zone file +/usr/share/zoneinfo/localtime local timezone file .br /usr/share/zoneinfo/posixrules used with POSIX-style TZ's .br @@ -292,7 +292,7 @@ can be freed or overwritten by later calls to the functions .IR tzfree , and .IR tzset , -if these functions affect the time zone information that specifies the +if these functions affect the timezone information that specifies the abbreviation in question. The remaining functions and data are thread-safe. .PP diff --git a/newstrftime.3 b/newstrftime.3 index f1a1a6d..1fd80df 100644 --- a/newstrftime.3 +++ b/newstrftime.3 @@ -210,7 +210,7 @@ is replaced by the year with century as a decimal number. is replaced by the year without century as a decimal number (00\*(en99). .TP %Z -is replaced by the time zone name, +is replaced by the time zone abbreviation, or by the empty string if this is not determinable. .TP %z @@ -218,7 +218,8 @@ is replaced by the offset from the Prime Meridian in the format +HHMM or \*-HHMM as appropriate, with positive values representing locations east of Greenwich, or by the empty string if this is not determinable. -The numeric time zone \*-0000 is used when the time is Universal Time +The numeric time zone abbreviation \*-0000 is used when the time is +Universal Time but local time is indeterminate; by convention this is used for locations while uninhabited, and corresponds to a zero offset when the time zone abbreviation begins with diff --git a/newtzset.3 b/newtzset.3 index 0eab732..29e8a21 100644 --- a/newtzset.3 +++ b/newtzset.3 @@ -26,17 +26,17 @@ tzset \- initialize time conversion information \\$3\*(lq\\$1\*(rq\\$2 .. .I Tzalloc -allocates and returns a time zone object described by +allocates and returns a timezone object described by .BR TZ . If .B TZ -is not a valid time zone description, or if the object cannot be allocated, +is not a valid timezone description, or if the object cannot be allocated, .I tzalloc returns a null pointer and sets .BR errno . .PP .I Tzfree -frees a time zone object +frees a timezone object .BR tz , which should have been successfully allocated by .IR tzalloc . @@ -49,13 +49,13 @@ was used to set. .I Tzset acts like .BR tzalloc(getenv("TZ")) , -except it saves any resulting time zone object into internal +except it saves any resulting timezone object into internal storage that is accessed by .IR localtime , .IR localtime_r , and .IR mktime . -The anonymous shared time zone object is freed by the next call to +The anonymous shared timezone object is freed by the next call to .IR tzset . If the implied call to .B tzalloc @@ -252,7 +252,7 @@ is not given, is .LP Here are some examples of .B TZ -values that directly specify the time zone rules; they use some of the +values that directly specify the timezone; they use some of the extensions to POSIX. .TP .B EST5 @@ -321,9 +321,9 @@ may be used to separate the from the rest of the specification. .SH FILES .ta \w'/usr/share/zoneinfo/posixrules\0\0'u -/usr/share/zoneinfo time zone information directory +/usr/share/zoneinfo timezone information directory .br -/usr/share/zoneinfo/localtime local time zone file +/usr/share/zoneinfo/localtime local timezone file .br /usr/share/zoneinfo/posixrules used with POSIX-style TZ's .br diff --git a/strftime.c b/strftime.c index e855890..ac26f4b 100644 --- a/strftime.c +++ b/strftime.c @@ -487,7 +487,8 @@ label: /* ** C99 and later say that %Z must be ** replaced by the empty string if the - ** time zone is not determinable. + ** time zone abbreviation is not + ** determinable. */ continue; case 'z': diff --git a/theory.html b/theory.html index 7ff6fc4..3939946 100644 --- a/theory.html +++ b/theory.html @@ -15,7 +15,7 @@ <ul> <li><a href="#scope">Scope of the <code><abbr>tz</abbr></code> database</a></li> - <li><a href="#naming">Names of time zone rulesets</a></li> + <li><a href="#naming">Names of timezones</a></li> <li><a href="#abbreviations">Time zone abbreviations</a></li> <li><a href="#accuracy">Accuracy of the <code><abbr>tz</abbr></code> database</a></li> @@ -35,13 +35,13 @@ database</a> attempts to record the history and predicted future of all computer-based clocks that track civil time. It organizes <a href="tz-link.html">time zone and daylight saving time data</a> by partitioning the world into <a -href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">regions</a> +href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"><dfn>timezones</dfn></a> whose clocks all agree about timestamps that occur after the <a href="https://en.wikipedia.org/wiki/Unix_time">POSIX Epoch</a> (1970-01-01 00:00:00 <a href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time"><abbr title="Coordinated Universal Time">UTC</abbr></a>). -The database labels each such region with a notable location and +The database labels each timezone with a notable location and records all known clock transitions for that location. Although 1970 is a somewhat-arbitrary cutoff, there are significant challenges to moving the cutoff earlier even by a decade or two, due @@ -50,7 +50,24 @@ became prevalent. </p> <p> -Clock transitions before 1970 are recorded for each such location, +Each timezone typically corresponds to a geographical region that is +smaller than a traditional time zone, because clocks in a timezone +all agree after 1970 whereas a traditional time zone merely +specifies current standard time. For example, applications that deal +with current and future timestamps in the traditional North +American mountain time zone can choose from the timezones +<code>America/Denver</code> which observes US-style daylight saving +time, <code>America/Mazatlan</code> which observes Mexican-style DST, +and <code>America/Phoenix</code> which does not observe DST. +Applications that also deal with past timestamps in the mountain time +zone can choose from over a dozen timezones, such as +<code>America/Boise</code>, <code>America/Edmonton</code>, and +<code>America/Hermosillo</code>, each of which currently uses mountain +time but differs from other timezones for some timestamps after 1970. +</p> + +<p> +Clock transitions before 1970 are recorded for each timezone, because most systems support timestamps before 1970 and could misbehave if data entries were omitted for pre-1970 transitions. However, the database is not designed for and does not suffice for @@ -77,23 +94,22 @@ Edition. Because the database's scope encompasses real-world changes to civil timekeeping, its model for describing time is more complex than the standard and daylight saving times supported by POSIX. -A <code><abbr>tz</abbr></code> region corresponds to a ruleset that can +A <code><abbr>tz</abbr></code> timezone corresponds to a ruleset that can have more than two changes per year, these changes need not merely flip back and forth between two alternatives, and the rules themselves can change at times. -Whether and when a <code><abbr>tz</abbr></code> region changes its -clock, and even the region's notional base offset from UTC, are variable. -It does not always make sense to talk about a region's -"base offset", since it is not necessarily a single number. +Whether and when a timezone changes its +clock, and even the timezone's notional base offset from UTC, are variable. +It does not always make sense to talk about a timezone's +"base offset", which is not necessarily a single number. </p> </section> <section> - <h2 id="naming">Names of time zone rulesets</h2> + <h2 id="naming">Names of timezones</h2> <p> -Each <code><abbr>tz</abbr></code> region has a unique name that -corresponds to a set of time zone rules. +Each timezone has a unique name. Inexperienced users are not expected to select these names unaided. Distributors should provide documentation and/or a simple selection interface that explains the names; for one example, see the @@ -110,12 +126,12 @@ among the following goals: <ul> <li> - Uniquely identify every region where clocks have agreed since 1970. + Uniquely identify every timezone where clocks have agreed since 1970. This is essential for the intended use: static clocks keeping local civil time. </li> <li> - Indicate to experts where that region is. + Indicate to experts where the timezone's clocks typically are. </li> <li> Be robust in the presence of political changes. @@ -135,9 +151,8 @@ among the following goals: <p> Names normally have the form <var>AREA</var><code>/</code><var>LOCATION</var>, where -<var>AREA</var> is the name of a continent or ocean, and -<var>LOCATION</var> is the name of a specific location within that -region. +<var>AREA</var> is a continent or ocean, and +<var>LOCATION</var> is a specific location within the area. North and South America share the same area, '<code>America</code>'. Typical names are '<code>Africa/Cairo</code>', '<code>America/New_York</code>', and '<code>Pacific/Honolulu</code>'. @@ -148,7 +163,7 @@ Indiana from other Petersburgs in America. <p> Here are the general guidelines used for -choosing <code><abbr>tz</abbr></code> region names, +choosing timezone names, in decreasing order of importance: </p> @@ -200,9 +215,9 @@ in decreasing order of importance: country or territory. </li> <li> - If all the clocks in a region have agreed since 1970, - do not bother to include more than one location - even if subregions' clocks disagreed before 1970. + If all the clocks in a timezone have agreed since 1970, + do not bother to include more than one timezone + even if some of the clocks disagreed before 1970. Otherwise these tables would become annoyingly large. </li> <li> @@ -216,7 +231,7 @@ in decreasing order of importance: Keep locations compact. Use cities or small islands, not countries or regions, so that any future changes do not split individual locations into different - <code><abbr>tz</abbr></code> regions. + timezones. E.g., prefer <code>Europe/Paris</code> to <code>Europe/France</code>, since <a href="https://en.wikipedia.org/wiki/Time_in_France#History">France @@ -278,9 +293,9 @@ in decreasing order of importance: <p> The file '<code>zone1970.tab</code>' lists geographical locations used -to name <code><abbr>tz</abbr></code> regions. +to name timezones. It is intended to be an exhaustive list of names for geographic -regions as described above; this is a subset of the names in the data. +regions as described above; this is a subset of the timezones in the data. Although a '<code>zone1970.tab</code>' location's <a href="https://en.wikipedia.org/wiki/Longitude">longitude</a> corresponds to @@ -493,8 +508,8 @@ in decreasing order of importance: usage. </li> <li> - Use a consistent style in a <code><abbr>tz</abbr></code> region's history. - For example, if history tends to use numeric + Use a consistent style in a timezone's history. + For example, if a history tends to use numeric abbreviations and a particular entry could go either way, use a numeric abbreviation. </li> @@ -548,7 +563,7 @@ Errors in the <code><abbr>tz</abbr></code> database arise from many sources: The pre-1970 entries in this database cover only a tiny sliver of how clocks actually behaved; the vast majority of the necessary information was lost or never recorded. - Thousands more <code><abbr>tz</abbr></code> regions would be needed if + Thousands more timezones would be needed if the <code><abbr>tz</abbr></code> database's scope were extended to cover even just the known or guessed history of standard time; for example, the current single entry for France would need to split @@ -613,19 +628,19 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes </li> <li> The <code><abbr>tz</abbr></code> database does not record the - earliest time for which a <code><abbr>tz</abbr></code> region's + earliest time for which a timezone's data entries are thereafter valid for every location in the region. For example, <code>Europe/London</code> is valid for all locations in its region after <abbr>GMT</abbr> was made the standard time, but the date of standardization (1880-08-02) is not in the <code><abbr>tz</abbr></code> database, other than in commentary. - For many <code><abbr>tz</abbr></code> regions the earliest time of + For many timezones the earliest time of validity is unknown. </li> <li> The <code><abbr>tz</abbr></code> database does not record a region's boundaries, and in many cases the boundaries are not known. - For example, the <code><abbr>tz</abbr></code> region + For example, the timezone <code>America/Kentucky/Louisville</code> represents a region around the city of Louisville, the boundaries of which are unclear. @@ -756,7 +771,7 @@ Any attempt to pass the should be unacceptable to anybody who cares about the facts. In particular, the <code><abbr>tz</abbr></code> database's <abbr>LMT</abbr> offsets should not be considered meaningful, and -should not prompt creation of <code><abbr>tz</abbr></code> regions +should not prompt creation of timezones merely because two locations differ in <abbr>LMT</abbr> or transitioned to standard time at different dates. @@ -808,7 +823,7 @@ an older <code>zic</code>. <dl> <dt><var>std</var> and <var>dst</var></dt><dd> are 3 or more characters specifying the standard - and daylight saving time (<abbr>DST</abbr>) zone names. + and daylight saving time (<abbr>DST</abbr>) zone abbreviations. Starting with POSIX.1-2001, <var>std</var> and <var>dst</var> may also be in a quoted form like '<code><+09></code>'; this allows "<code>+</code>" and "<code>-</code>" in the names. @@ -894,7 +909,7 @@ an older <code>zic</code>. <li> The <code>TZ</code> environment variable is process-global, which makes it hard to write efficient, thread-safe applications that - need access to multiple time zone rulesets. + need access to multiple timezones. </li> <li> In POSIX, there is no tamper-proof way for a process to learn the @@ -911,7 +926,7 @@ an older <code>zic</code>. <li> POSIX provides no convenient and efficient way to determine the <abbr>UT</abbr> offset and time zone abbreviation of arbitrary - timestamps, particularly for <code><abbr>tz</abbr></code> regions + timestamps, particularly for timezones that do not fit into the POSIX model. </li> <li> @@ -946,9 +961,9 @@ an older <code>zic</code>. constrained to be a string containing abbreviations and numeric data as described <a href="#POSIX">above</a>. The file's format is <dfn><abbr>TZif</abbr></dfn>, - a time zone information format that contains binary data. + a timezone information format that contains binary data. The daylight saving time rules to be used for a - particular <code><abbr>tz</abbr></code> region are encoded in the + particular timezone are encoded in the <abbr>TZif</abbr> file; the format of the file allows <abbr>US</abbr>, Australian, and other rules to be encoded, and allows for situations where more than two time zone @@ -983,7 +998,7 @@ an older <code>zic</code>. Functions <code>tzalloc</code>, <code>tzfree</code>, <code>localtime_rz</code>, and <code>mktime_z</code> for more-efficient thread-safe applications that need to use multiple - time zone rulesets. + timezones. The <code>tzalloc</code> and <code>tzfree</code> functions allocate and free objects of type <code>timezone_t</code>, and <code>localtime_rz</code> and <code>mktime_z</code> are @@ -1128,8 +1143,8 @@ The <code><abbr>tz</abbr></code> code and data supply the following interfaces: <ul> <li> - A set of <code><abbr>tz</abbr></code> region names as per - "<a href="#naming">Names of time zone rulesets</a>" above. + A set of timezone names as per + "<a href="#naming">Names of timezones</a>" above. </li> <li> Library functions described in "<a href="#functions">Time and date diff --git a/tz-how-to.html b/tz-how-to.html index ca5f8cc..159ed89 100644 --- a/tz-how-to.html +++ b/tz-how-to.html @@ -520,7 +520,7 @@ a <code>SAVE</code> of zero. <ul> <li>The <a href="https://en.wikipedia.org/wiki/Tz_database">tz -database</a> gives abbreviations for time zone names in <i>popular +database</a> gives abbreviations for time zones in <i>popular usage</i>, which is not necessarily “correct” by law. For example, the last line in <code>Zone</code> <code>Pacific/Honolulu</code> (shown below) gives diff --git a/tz-link.html b/tz-link.html index 0e89b00..548fbba 100644 --- a/tz-link.html +++ b/tz-link.html @@ -61,10 +61,10 @@ title="Virtual Memory System">VMS</abbr></a>, <a href="https://www.oracle.com/database/index.html">Oracle Database</a>, and <a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p> <p> -Each location in the database represents a region where all -clocks keeping local time have agreed since 1970. -Locations are identified by continent or ocean and then by the name of -the location, which is typically the largest city within the region. +Each main entry in the database represents a <dfn>timezone</dfn> +for a set of civil-time clocks that have all agreed since 1970. +Timezones are typically identified by continent or ocean and then by the +name of the largest city within the region containing the clocks. For example, <code>America/New_York</code> represents most of the <abbr title="United States">US</abbr> eastern time zone; <code>America/Phoenix</code> represents most of Arizona, which @@ -82,7 +82,7 @@ implementation set the <code><abbr>TZ</abbr></code> environment variable to the location's full name, e.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p> <p> -Associated with each region is a history of offsets from +Associated with each timezone is a history of offsets from <a href="https://en.wikipedia.org/wiki/Universal_Time">Universal Time</a> (<abbr>UT</abbr>), which is <a href="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean @@ -147,7 +147,7 @@ After obtaining the code and data files, see the <code>README</code> file for what to do next. The code lets you compile the <code><abbr>tz</abbr></code> source files into machine-readable binary files, one for each location. The binary files -are in a special time zone information format (<dfn><abbr>TZif</abbr></dfn>). +are in a special timezone information format (<dfn><abbr>TZif</abbr></dfn>). The code also lets you read a <abbr>TZif</abbr> file and interpret timestamps for that location.</p> @@ -284,7 +284,7 @@ The <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis mailing list</a> discusses two Internet drafts: <a id="TZDIST-Geolocate" href="https://tools.ietf.org/html/draft-murchison-tzdist-geolocate">TZDIST -Geolocate Extension</a> lets a client determine its time zone region +Geolocate Extension</a> lets a client determine its timezone from its geographic location using a <a href="https://tools.ietf.org/html/rfc5870">'geo' URI</a>, and <a href="https://tools.ietf.org/html/draft-murchison-tzdist-tzif">The @@ -603,7 +603,7 @@ mean solar and standard time, highlighting areas such as western China where the two differ greatly. It's a bit out of date, unfortunately.</li> </ul> <h2 id="boundaries">Time zone boundaries</h2> -<p>Geographical boundaries between time zone regions are available +<p>Geographical boundaries between timezones are available from several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a> services and other sources.</p> <ul> @@ -612,7 +612,7 @@ services and other sources.</p> <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 -boundaries of <code><abbr>tz</abbr></code> regions. +boundaries of <code><abbr>tzdb</abbr></code> timezones. 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 @@ -620,9 +620,9 @@ 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>tz</abbr></code> regions. This includes +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 regions. These maps are no longer maintained and +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> @@ -633,7 +633,7 @@ the tz_world shapefiles with the dataset.</li> </ul></li> <li>Programmatic interfaces that map geographical coordinates via tz_world to -<code><abbr>tz</abbr></code> regions include: +<code><abbr>tzdb</abbr></code> timezones include: <ul> <li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is written in <a diff --git a/tzfile.5 b/tzfile.5 index 2e6c3aa..ee7befb 100644 --- a/tzfile.5 +++ b/tzfile.5 @@ -1,6 +1,6 @@ .TH TZFILE 5 .SH NAME -tzfile \- time zone information +tzfile \- timezone information .SH DESCRIPTION .ie '\(lq'' .ds lq \&"\" .el .ds lq \(lq\" @@ -9,7 +9,7 @@ tzfile \- time zone information .de q \\$3\*(lq\\$1\*(rq\\$2 .. -The time zone information files used by +The timezone information files used by .BR tzset (3) are typically found under a directory with a name like .IR /usr/share/zoneinfo . @@ -17,7 +17,7 @@ These files begin with a 44-byte header containing the following fields: .IP * 2 The magic four-byte ASCII sequence .q "TZif" -identifies the file as a time zone information file. +identifies the file as a timezone information file. .IP * A byte identifying the version of the file's format (as of 2017, either an ASCII NUL, or @@ -129,15 +129,15 @@ transitions always separated by at least 28 days minus 1 second. standard/wall indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as standard time or wall clock time, -and are used when a time zone file is used in handling POSIX-style -time zone environment variables. +and are used when a timezone file is used in handling POSIX-style +timezone environment variables. .IP * .I tzh_ttisgmtcnt UT/local indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as UT or local time, -and are used when a time zone file is used in handling POSIX-style -time zone environment variables. +and are used when a timezone file is used in handling POSIX-style +timezone environment variables. .PP The .BR localtime (3) @@ -153,7 +153,7 @@ if either is zero or the time argument is less than the first transition time recorded in the file. .SS Version 2 format -For version-2-format time zone files, +For version-2-format timezone files, the above header and data are followed by a second header and data, identical in format except that eight bytes are used for each transition time or leap second time. @@ -176,7 +176,7 @@ Also, if there is at least one transition, time type 0 is associated with the time period from the indefinite past up to but not including the earliest transition time. .SS Version 3 format -For version-3-format time zone files, the POSIX-TZ-style string may +For version-3-format timezone files, the POSIX-TZ-style string may use two minor extensions to the POSIX TZ format, as described in .BR newtzset (3). First, the hours part of its transition times may be signed and range from diff --git a/tzselect.8 b/tzselect.8 index 847d6dd..51f751c 100644 --- a/tzselect.8 +++ b/tzselect.8 @@ -1,6 +1,6 @@ .TH TZSELECT 8 .SH NAME -tzselect \- select a time zone +tzselect \- select a timezone .SH SYNOPSIS .ie \n(.g .ds - \f(CW-\fP .el ds - \- @@ -20,7 +20,7 @@ tzselect \- select a time zone The .B tzselect program asks the user for information about the current location, -and outputs the resulting time zone description to standard output. +and outputs the resulting timezone to standard output. The output is suitable as a value for the TZ environment variable. .PP All interaction with the user is done via standard input and standard error. @@ -87,7 +87,7 @@ program (default: .BR awk ). .TP \f3TZDIR\fP -Name of the directory containing time zone data files (default: +Name of the directory containing timezone data files (default: .BR /usr/share/zoneinfo ). .SH FILES .TP @@ -95,13 +95,13 @@ Name of the directory containing time zone data files (default: Table of ISO 3166 2-letter country codes and country names. .TP \f2TZDIR\fP\f3/zone1970.tab\fP -Table of country codes, latitude and longitude, zone names, and +Table of country codes, latitude and longitude, timezones, and descriptive comments. .TP \f2TZDIR\fP\f3/\fP\f2TZ\fP -Time zone data file for time zone \f2TZ\fP. +Timezone data file for timezone \f2TZ\fP. .SH "EXIT STATUS" -The exit status is zero if a time zone was successfully obtained from the user, +The exit status is zero if a timezone was successfully obtained from the user, nonzero otherwise. .SH "SEE ALSO" newctime(3), tzfile(5), zdump(8), zic(8) diff --git a/tzselect.ksh b/tzselect.ksh index cde80d1..f7d8154 100644 --- a/tzselect.ksh +++ b/tzselect.ksh @@ -55,7 +55,7 @@ location_limit=10 zonetabtype=zone1970 usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] -Select a time zone interactively. +Select a timezone interactively. Options: @@ -327,7 +327,7 @@ while eval ' doselect '"$quoted_continents"' \ "coord - I want to use geographical coordinates." \ - "TZ - I want to specify the time zone using the Posix TZ format." + "TZ - I want to specify the timezone using the Posix TZ format." continent=$select_result case $continent in Americas) continent=America;; @@ -342,8 +342,8 @@ while while echo >&2 'Please enter the desired value' \ 'of the TZ environment variable.' - echo >&2 'For example, AEST-10 is a zone named AEST' \ - 'that is 10 hours' + echo >&2 'For example, AEST-10 is abbreviated' \ + 'AEST and is 10 hours' echo >&2 'ahead (east) of Greenwich,' \ 'with no daylight saving time.' read TZ @@ -362,7 +362,7 @@ while exit 0 }' do - say >&2 "'$TZ' is not a conforming Posix time zone string." + say >&2 "'$TZ' is not a conforming Posix timezone string." done TZ_for_date=$TZ;; *) @@ -388,8 +388,7 @@ while BEGIN { FS = "\t" } { print $NF } '` - echo >&2 'Please select one of the following' \ - 'time zone regions,' + echo >&2 'Please select one of the following timezones,' \ echo >&2 'listed roughly in increasing order' \ "of distance from $coord". doselect $regions @@ -439,7 +438,7 @@ while esac - # Get list of names of time zone rule regions in the country. + # Get list of timezones in the country. regions=`$AWK \ -v country="$country" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ @@ -462,8 +461,7 @@ while # If there's more than one region, ask the user which one. case $regions in *"$newline"*) - echo >&2 'Please select one of the following' \ - 'time zone regions.' + echo >&2 'Please select one of the following timezones.' doselect $regions region=$select_result;; *) diff --git a/zdump.8 b/zdump.8 index 92e9e62..de83e15 100644 --- a/zdump.8 +++ b/zdump.8 @@ -1,12 +1,12 @@ .TH ZDUMP 8 .SH NAME -zdump \- time zone dumper +zdump \- timezone dumper .SH SYNOPSIS .B zdump [ .I option \&... ] [ -.I zonename +.I timezone \&... ] .SH DESCRIPTION .ie '\(lq'' .ds lq \&"\" @@ -21,7 +21,7 @@ zdump \- time zone dumper The .B zdump program prints the current time in each -.I zonename +.I timezone named on the command line. .SH OPTIONS .TP @@ -34,16 +34,16 @@ Output short usage message and exit. .B \*-i .I "(This option is experimental: its behavior may change in future versions.)" Output a description of time intervals. For each -.I zonename +.I timezone on the command line, output an interval-format description of the -zone. See +timezone. See .q "INTERVAL FORMAT" below. .TP .B \*-v Output a verbose description of time intervals. For each -.I zonename +.I timezone on the command line, print the time at the lowest possible time value, the time one day after the lowest possible time value, @@ -88,7 +88,7 @@ Cut off interval output at the given time(s), given in decimal seconds since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The -.I zonename +.I timezone determines whether the count includes leap seconds. As with .BR \*-c , @@ -102,7 +102,7 @@ then a line .q "TZ=\fIstring\fP" where .I string -is a double-quoted string giving the zone name, a second line +is a double-quoted string giving the timezone, a second line .q "\*- \*- \fIinterval\fP" describing the time interval before the first transition if any, and zero or more following lines diff --git a/zdump.c b/zdump.c index a4d9108..4c61f58 100644 --- a/zdump.c +++ b/zdump.c @@ -382,7 +382,7 @@ static void usage(FILE * const stream, const int status) { fprintf(stream, -_("%s: usage: %s OPTIONS ZONENAME ...\n" +_("%s: usage: %s OPTIONS TIMEZONE ...\n" "Options include:\n" " -c [L,]U Start at year L (default -500), end before year U (default 2500)\n" " -t [L,]U Start at time L, end before time U (in seconds since 1970)\n" diff --git a/zic.8 b/zic.8 index 3e33618..4ef7675 100644 --- a/zic.8 +++ b/zic.8 @@ -1,6 +1,6 @@ .TH ZIC 8 .SH NAME -zic \- time zone compiler +zic \- timezone compiler .SH SYNOPSIS .B zic [ @@ -50,7 +50,9 @@ Create time conversion information files in the named directory rather than in the standard directory named below. .TP .BI "\*-l " timezone -Use the given time zone as local time. +Use +.I timezone +as local time. .B zic will act as if the input contained a link line of the form .sp @@ -58,8 +60,10 @@ will act as if the input contained a link line of the form Link \fItimezone\fP localtime .TP .BI "\*-p " timezone -Use the given time zone's rules when handling POSIX-format -time zone environment variables. +Use +.IR timezone 's +rules when handling POSIX-format +timezone environment variables. .B zic will act as if the input contained a link line of the form .sp @@ -97,7 +101,7 @@ Pre-2004 versions of prohibit this. .PP The output file does not contain all the information about the -long-term future of a zone, because the future cannot be summarized as +long-term future of a timezone, because the future cannot be summarized as an extended POSIX TZ string. For example, as of 2013 this problem occurs for Iran's daylight-saving rules for the predicted future, as these rules are based on the Iranian calendar, which cannot be @@ -362,9 +366,9 @@ Zone Asia/Amman 2:00 Jordan EE%sT 2017 Oct 27 01:00 The fields that make up a zone line are: .TP "\w'UTOFF'u" .B NAME -The name of the time zone. +The name of the timezone. This is the name used in creating the time conversion information file for the -zone. +timezone. It should not contain a file name component .q ".\&" or @@ -373,7 +377,7 @@ a file name component is a maximal substring that does not contain .q "/" . .TP .B UTOFF -The amount of time to add to UT to get standard time in this zone. +The amount of time to add to UT to get standard time. This field has the same format as the .B AT and @@ -382,18 +386,18 @@ fields of rule lines; begin the field with a minus sign if time must be subtracted from UT. .TP .B RULES -The name of the rules that apply in the time zone or, +The name of the rules that apply in the timezone or, alternatively, a field in the same format as a rule-line SAVE column, giving of the amount of time to be added to local standard time effect, and whether the resulting time is standard or daylight saving. If this field is .B \*- -then standard time always applies in the time zone. +then standard time always applies. When an amount of time is given, only the sum of standard time and this amount matters. .TP .B FORMAT -The format for time zone abbreviations in this time zone. +The format for time zone abbreviations. The pair of characters .B %s is used to show where the @@ -556,7 +560,7 @@ Link Europe/Zurich Europe/Vaduz .sp .in .fi -In this example, the zone is named Europe/Zurich but it has an alias +In this example, the timezone is named Europe/Zurich but it has an alias as Europe/Vaduz. This example says that Zurich was 34 minutes and 8 seconds east of UT until 1853-07-16 at 00:00, when the legal offset was changed to 7\(de\|26\(fm\|22.50\(sd; although this works out to @@ -580,16 +584,16 @@ For purposes of display, and .q "BMT" were initially used, respectively. Since -Swiss rules and later EU rules were applied, the display name for the -time zone has been CET for standard time and CEST for daylight saving +Swiss rules and later EU rules were applied, the time zone abbreviation +has been CET for standard time and CEST for daylight saving time. .SH FILES .TP .I /etc/localtime -Default local time zone file. +Default local timezone file. .TP .I /usr/share/zoneinfo -Default time zone information directory. +Default timezone information directory. .SH NOTES For areas with more than two types of local time, you may need to use local standard time in the @@ -598,7 +602,7 @@ field of the earliest transition time's rule to ensure that the earliest transition time recorded in the compiled file is correct. .PP If, -for a particular zone, +for a particular timezone, a clock advance caused by the start of daylight saving coincides with and is equal to a clock retreat caused by a change in UT offset, diff --git a/zone.tab b/zone.tab index bb56fa1..dcb6e1d 100644 --- a/zone.tab +++ b/zone.tab @@ -1,9 +1,9 @@ -# tz zone descriptions (deprecated version) +# tzdb timezone descriptions (deprecated version) # # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # -# From Paul Eggert (2014-07-31): +# From Paul Eggert (2018-06-27): # This file is intended as a backward-compatibility aid for older programs. # New programs should use zone1970.tab. This file is like zone1970.tab (see # zone1970.tab's comments), but with the following additional restrictions: @@ -12,13 +12,13 @@ # 2. The first data column contains exactly one country code. # # Because of (2), each row stands for an area that is the intersection -# of a region identified by a country code and of a zone where civil +# of a region identified by a country code and of a timezone where civil # clocks have agreed since 1970; this is a narrower definition than # that of zone1970.tab. # -# This table is intended as an aid for users, to help them select time -# zone data entries appropriate for their practical needs. It is not -# intended to take or endorse any position on legal or territorial claims. +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. # #country- #code coordinates TZ comments diff --git a/zone1970.tab b/zone1970.tab index 9d6d4fa..7c86fb6 100644 --- a/zone1970.tab +++ b/zone1970.tab @@ -1,35 +1,35 @@ -# tz zone descriptions +# tzdb timezone descriptions # # This file is in the public domain. # -# From Paul Eggert (2017-10-01): -# This file contains a table where each row stands for a zone where +# From Paul Eggert (2018-06-27): +# This file contains a table where each row stands for a timezone where # civil timestamps have agreed since 1970. Columns are separated by # a single tab. Lines beginning with '#' are comments. All text uses # UTF-8 encoding. The columns of the table are as follows: # -# 1. The countries that overlap the zone, as a comma-separated list +# 1. The countries that overlap the timezone, as a comma-separated list # of ISO 3166 2-character country codes. See the file 'iso3166.tab'. -# 2. Latitude and longitude of the zone's principal location +# 2. Latitude and longitude of the timezone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, # first latitude (+ is north), then longitude (+ is east). -# 3. Zone name used in value of TZ environment variable. -# Please see the theory.html file for how zone names are chosen. -# If multiple zones overlap a country, each has a row in the +# 3. Timezone name used in value of TZ environment variable. +# Please see the theory.html file for how these names are chosen. +# If multiple timezones overlap a country, each has a row in the # table, with each column 1 containing the country code. -# 4. Comments; present if and only if a country has multiple zones. +# 4. Comments; present if and only if a country has multiple timezones. # -# If a zone covers multiple countries, the most-populous city is used, +# If a timezone covers multiple countries, the most-populous city is used, # and that country is listed first in column 1; any other countries # are listed alphabetically by country code. The table is sorted # first by country code, then (if possible) by an order within the # country that (1) makes some geographical sense, and (2) puts the -# most populous zones first, where that does not contradict (1). +# most populous timezones first, where that does not contradict (1). # -# This table is intended as an aid for users, to help them select time -# zone data entries appropriate for their practical needs. It is not -# intended to take or endorse any position on legal or territorial claims. +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. # #country- #codes coordinates TZ comments -- 2.7.4
From 81fb744538d89fbed90a3977aea12b003a510754 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@xxxxxxxxxxx> Date: Wed, 27 Jun 2018 11:37:33 -0700 Subject: [PROPOSED 2/3] Make last time type agree with draft TZif * tzfile.5: Say that the last time type is used only for consistency checking, instead of saying that it governs one second. Also, it matters only in the 64-bit data. --- tzfile.5 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tzfile.5 b/tzfile.5 index ee7befb..79b19bf 100644 --- a/tzfile.5 +++ b/tzfile.5 @@ -68,11 +68,12 @@ at which the rules for computing local time change. .IP * .I tzh_timecnt one-byte unsigned integer values; -each one tells which of the different types of local time types +each one but the last tells which of the different types of local time types described in the file is associated with the time period starting with the same-indexed transition time -and continuing up to but not including the next transition time -(or continuing for one second, if this is the last transition). +and continuing up to but not including the next transition time. +(The last time type is present only for consistency checking with the +POSIX-style TZ string described below.) These values serve as indices into the next field. .IP * .I tzh_typecnt @@ -165,7 +166,7 @@ or for all instants if the file has no transitions. The POSIX-style TZ string is empty (i.e., nothing between the newlines) if there is no POSIX representation for such instants. If nonempty, the POSIX-style TZ string must agree with the local time -type after both data's last transition times if present; +type after the last transition time if present in the eight-byte data; for example, given the string .q "WET0WEST,M3.5.0,M10.5.0/3" then if a last transition time is in July, the transition's local time -- 2.7.4
From b709eb84eaa48354186d4a11c86395e399f19c12 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@xxxxxxxxxxx> Date: Wed, 27 Jun 2018 11:38:46 -0700 Subject: [PROPOSED 3/3] * zdump.8: Stop saying -i is experimental. --- zdump.8 | 3 --- 1 file changed, 3 deletions(-) diff --git a/zdump.8 b/zdump.8 index de83e15..f369056 100644 --- a/zdump.8 +++ b/zdump.8 @@ -32,7 +32,6 @@ Output version information and exit. Output short usage message and exit. .TP .B \*-i -.I "(This option is experimental: its behavior may change in future versions.)" Output a description of time intervals. For each .I timezone on the command line, output an interval-format description of the @@ -94,8 +93,6 @@ As with .BR \*-c , the cutoff's lower bound is exclusive and its upper bound is inclusive. .SH "INTERVAL FORMAT" -.I "This format is experimental: it may change in future versions." -.PP The interval format is a compact text representation that is intended to be both human- and machine-readable. It consists of an empty line, then a line -- 2.7.4