[tz] [PROPOSED] Bring zic man page up to date
eggert at cs.ucla.edu
Thu May 16 22:24:50 UTC 2019
* zic.8: Don’t mention time(2), since zic does not rely on time_t
any more. Mention other ways that -v generates warnings.
ON fields can’t contain non-space white space characters either.
Remove incorrect assertion that fractional seconds are not allowed.
zic.8 | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 48 insertions(+), 12 deletions(-)
diff --git a/zic.8 b/zic.8
index 524a113..6d893c2 100644
@@ -110,9 +110,7 @@ Be more verbose, and complain about the following situations:
The input specifies a link to a link.
A year that appears in a data file is outside the range
-of years representable by
-.BR time (2)
+of representable years.
A time of 24:00 or more appears in the input.
Pre-1998 versions of
@@ -124,6 +122,36 @@ Pre-2004 versions of
+A time zone abbreviation uses a
+Pre-2015 versions of
+do not support this.
+A timestamp contains fractional seconds.
+Pre-2018 versions of
+do not support this.
+The input contains abbreviations that are mishandled by pre-2018 versions of
+due to a longstanding coding bug.
+These abbreviations include
+.q Link ,
+.q min ,
+.q Sat ,
+.q Sun .
The output file does not contain all the information about the
long-term future of a timezone, because the future cannot be summarized as
an extended POSIX TZ string. For example, as of 2019 this problem
@@ -137,8 +165,15 @@ code designed for older
output formats. These compatibility issues affect only timestamps
before 1970 or after the start of 2038.
-A time zone abbreviation has fewer than 3 characters.
-POSIX requires at least 3.
+The output file contains more than 1200 transitions,
+which may be mishandled by some clients.
+The current reference client supports at most 2000 transitions;
+pre-2014 versions of the reference client support at most 1200
+A time zone abbreviation has fewer than 3 or more than 6 characters.
+POSIX requires at least 3, and requires implementations to support
+at least 6.
An output file name contains a byte that is not an ASCII letter,
.q "\*-" ,
@@ -279,7 +314,7 @@ or a weekday name preceded by
.BR "lastSunday" )
may be abbreviated or spelled out in full.
-Note that there must be no spaces within the
+There must be no white space characters within the
@@ -455,7 +490,7 @@ and
The time at which the UT offset or the rule(s) change for a location.
-It takes the form of YEAR [MONTH [DAY [TIME]]].
+It takes the form of one to four fields YEAR [MONTH [DAY [TIME]]].
If this is specified,
the time zone information is generated from the given UT offset
and rule change until the time specified, which is interpreted using
@@ -587,10 +622,10 @@ Rule EU 1979 1995 \*- Sep lastSun 1:00u 0 \*-
Rule EU 1981 max \*- Mar lastSun 1:00u 1:00 S
Rule EU 1996 max \*- Oct lastSun 1:00u 0 \*-
-.ta \w'# Zone\0\0'u +\w'Europe/Zurich\0\0'u +\w'0:34:08\0\0'u +\w'RULES\0\0'u +\w'FORMAT\0\0'u
+.ta \w'# Zone\0\0'u +\w'Europe/Zurich\0\0'u +\w'0:29:45.50\0\0'u +\w'RULES\0\0'u +\w'FORMAT\0\0'u
# Zone NAME UTOFF RULES FORMAT [UNTIL]
Zone Europe/Zurich 0:34:08 \*- LMT 1853 Jul 16
- 0:29:46 \*- BMT 1894 Jun
+ 0:29:45.50 \*- BMT 1894 Jun
1:00 Swiss CE%sT 1981
1:00 EU CE%sT
@@ -601,9 +636,10 @@ Link Europe/Zurich Europe/Vaduz
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
-0:29:45.50, the input format cannot represent fractional seconds so it
-is rounded here. After 1894-06-01 at 00:00 the UT offset became one hour
+was changed to 7\(de\|26\(fm\|22.50\(sd, which works out to 0:29:45.50;
+treats this by rounding it to 0:29:46.
+After 1894-06-01 at 00:00 the UT offset became one hour
and Swiss daylight saving rules (defined with lines beginning with
.q "Rule Swiss")
apply. From 1981 to the present, EU daylight saving rules have
More information about the tz