1986-12-02 19:22:09 -05:00
|
|
|
.TH ZIC 8
|
1986-02-15 17:45:02 -05:00
|
|
|
.SH NAME
|
1986-11-19 19:17:22 -05:00
|
|
|
zic \- time zone compiler
|
1986-02-15 17:45:02 -05:00
|
|
|
.SH SYNOPSIS
|
1986-11-19 19:17:22 -05:00
|
|
|
.B zic
|
1986-02-15 17:50:34 -05:00
|
|
|
[
|
2014-06-28 16:35:14 -07:00
|
|
|
.I option
|
|
|
|
|
\&... ] [
|
1986-08-28 08:59:23 -04:00
|
|
|
.I filename
|
|
|
|
|
\&... ]
|
1986-02-15 17:45:02 -05:00
|
|
|
.SH DESCRIPTION
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.ie '\(lq'' .ds lq \&"\"
|
|
|
|
|
.el .ds lq \(lq\"
|
|
|
|
|
.ie '\(rq'' .ds rq \&"\"
|
|
|
|
|
.el .ds rq \(rq\"
|
1988-01-25 11:48:50 -05:00
|
|
|
.de q
|
|
|
|
|
\\$3\*(lq\\$1\*(rq\\$2
|
|
|
|
|
..
|
2014-06-27 01:46:22 -07:00
|
|
|
.ie '\(la'' .ds < <
|
|
|
|
|
.el .ds < \(la
|
|
|
|
|
.ie '\(ra'' .ds > >
|
|
|
|
|
.el .ds > \(ra
|
2014-06-28 16:35:14 -07:00
|
|
|
.ie \n(.g \{\
|
|
|
|
|
. ds : \:
|
|
|
|
|
. ds - \f(CW-\fP
|
|
|
|
|
.\}
|
|
|
|
|
.el \{\
|
|
|
|
|
. ds :
|
|
|
|
|
. el ds - \-
|
|
|
|
|
.\}
|
1986-11-19 19:17:22 -05:00
|
|
|
.I Zic
|
1986-02-15 17:45:02 -05:00
|
|
|
reads text from the file(s) named on the command line
|
1986-03-06 09:34:53 -05:00
|
|
|
and creates the time conversion information files specified in this input.
|
1986-02-15 17:45:02 -05:00
|
|
|
If a
|
|
|
|
|
.I filename
|
|
|
|
|
is
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-" ,
|
1986-02-15 17:45:02 -05:00
|
|
|
the standard input is read.
|
|
|
|
|
.PP
|
1986-02-28 21:31:08 -05:00
|
|
|
These options are available:
|
1986-02-15 17:50:34 -05:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.BI "\*-\*-version"
|
2003-07-29 13:12:49 -04:00
|
|
|
Output version information and exit.
|
|
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.BI "\*-d " directory
|
1986-03-06 09:34:53 -05:00
|
|
|
Create time conversion information files in the named directory rather than
|
1986-02-15 17:50:34 -05:00
|
|
|
in the standard directory named below.
|
1986-02-28 21:31:08 -05:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.BI "\*-l " timezone
|
1986-02-28 21:31:08 -05:00
|
|
|
Use the given time zone as local time.
|
1986-11-19 19:17:22 -05:00
|
|
|
.I Zic
|
1989-01-31 23:10:39 -05:00
|
|
|
will act as if the input contained a link line of the form
|
1986-08-28 08:59:23 -04:00
|
|
|
.sp
|
|
|
|
|
.ti +.5i
|
1987-02-19 08:32:21 -05:00
|
|
|
Link \fItimezone\fP localtime
|
1987-02-21 15:47:15 -05:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.BI "\*-p " timezone
|
1989-01-31 23:10:39 -05:00
|
|
|
Use the given time zone's rules when handling POSIX-format
|
|
|
|
|
time zone environment variables.
|
|
|
|
|
.I Zic
|
|
|
|
|
will act as if the input contained a link line of the form
|
|
|
|
|
.sp
|
|
|
|
|
.ti +.5i
|
|
|
|
|
Link \fItimezone\fP posixrules
|
|
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.BI "\*-L " leapsecondfilename
|
1988-01-25 11:48:50 -05:00
|
|
|
Read leap second information from the file with the given name.
|
|
|
|
|
If this option is not used,
|
1989-03-04 14:43:06 -05:00
|
|
|
no leap second information appears in output files.
|
1988-01-25 11:48:50 -05:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B \*-v
|
2013-09-08 23:04:07 -07:00
|
|
|
Be more verbose, and complain about the following situations:
|
|
|
|
|
.RS
|
|
|
|
|
.PP
|
2014-08-12 18:03:14 -07:00
|
|
|
The input specifies a link to a link.
|
2013-09-08 23:04:07 -07:00
|
|
|
.PP
|
|
|
|
|
A year that appears in a data file is outside the range
|
1987-02-21 15:47:15 -05:00
|
|
|
of years representable by
|
|
|
|
|
.IR time (2)
|
|
|
|
|
values.
|
2013-09-08 23:04:07 -07:00
|
|
|
.PP
|
|
|
|
|
A time of 24:00 or more appears in the input.
|
|
|
|
|
Pre-1998 versions of
|
|
|
|
|
.I zic
|
|
|
|
|
prohibit 24:00, and pre-2007 versions prohibit times greater than 24:00.
|
|
|
|
|
.PP
|
|
|
|
|
A rule goes past the start or end of the month.
|
|
|
|
|
Pre-2004 versions of
|
|
|
|
|
.I zic
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
represented.
|
|
|
|
|
.PP
|
|
|
|
|
The output contains data that may not be handled properly by client
|
|
|
|
|
code designed for older
|
|
|
|
|
.I zic
|
|
|
|
|
output formats. These compatibility issues affect only time stamps
|
|
|
|
|
before 1970 or after the start of 2038.
|
|
|
|
|
.PP
|
|
|
|
|
A time zone abbreviation has fewer than 3 characters.
|
|
|
|
|
POSIX requires at least 3.
|
2014-06-25 23:15:27 -07:00
|
|
|
.PP
|
2014-06-26 14:23:53 -07:00
|
|
|
An output file name contains a byte that is not an ASCII letter,
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-" ,
|
2014-06-25 23:15:27 -07:00
|
|
|
.q "/" ,
|
|
|
|
|
or
|
|
|
|
|
.q "_" ;
|
|
|
|
|
or it contains a file name component that contains more than 14 bytes
|
|
|
|
|
or that starts with
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-" .
|
2013-09-08 23:04:07 -07:00
|
|
|
.RE
|
1987-04-30 21:04:20 -04:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B \*-s
|
1987-04-30 21:04:20 -04:00
|
|
|
Limit time values stored in output files to values that are the same
|
|
|
|
|
whether they're taken to be signed or unsigned.
|
1987-08-07 10:40:57 -04:00
|
|
|
You can use this option to generate SVVS-compatible files.
|
1994-02-07 09:57:44 -05:00
|
|
|
.PP
|
2014-06-26 14:23:53 -07:00
|
|
|
Input files should be text files, that is, they should be a series of
|
|
|
|
|
zero or more lines, each ending in a newline byte and containing at
|
|
|
|
|
most 511 bytes, and without any NUL bytes. The input text's encoding
|
|
|
|
|
is typically UTF-8 or ASCII; it should have a unibyte representation
|
|
|
|
|
for the POSIX Portable Character Set (PPCS)
|
2014-06-27 01:46:22 -07:00
|
|
|
\*<http://pubs\*:.opengroup\*:.org/\*:onlinepubs/\*:9699919799/\*:basedefs/\*:V1_chap06\*:.html\*>
|
2014-06-26 14:23:53 -07:00
|
|
|
and the encoding's non-unibyte characters should consist entirely of
|
|
|
|
|
non-PPCS bytes. Non-PPCS characters typically occur only in comments:
|
|
|
|
|
although output file names and time zone abbreviations can contain
|
|
|
|
|
nearly any character, other software will work better if these are
|
|
|
|
|
limited to the restricted syntax described under the
|
2014-06-28 16:35:14 -07:00
|
|
|
.B \*-v
|
2014-06-26 14:23:53 -07:00
|
|
|
option.
|
|
|
|
|
.PP
|
1986-02-28 21:31:08 -05:00
|
|
|
Input lines are made up of fields.
|
2013-09-15 23:17:45 -05:00
|
|
|
Fields are separated from one another by one or more white space characters.
|
2014-06-26 14:23:53 -07:00
|
|
|
The white space characters are space, form feed, carriage return, newline,
|
|
|
|
|
tab, and vertical tab.
|
1986-02-28 21:31:08 -05:00
|
|
|
Leading and trailing white space on input lines is ignored.
|
|
|
|
|
An unquoted sharp character (#) in the input introduces a comment which extends
|
|
|
|
|
to the end of the line the sharp character appears on.
|
|
|
|
|
White space characters and sharp characters may be enclosed in double quotes
|
|
|
|
|
(") if they're to be used as part of a field.
|
1986-08-28 08:59:23 -04:00
|
|
|
Any line that is blank (after comment stripping) is ignored.
|
1987-02-21 18:26:25 -05:00
|
|
|
Non-blank lines are expected to be of one of three types:
|
|
|
|
|
rule lines, zone lines, and link lines.
|
1986-02-15 17:45:02 -05:00
|
|
|
.PP
|
2010-03-16 13:02:53 -04:00
|
|
|
Names (such as month names) must be in English and are case insensitive.
|
|
|
|
|
Abbreviations, if used, must be unambiguous in context.
|
|
|
|
|
.PP
|
1986-02-15 17:45:02 -05:00
|
|
|
A rule line has the form
|
|
|
|
|
.nf
|
|
|
|
|
.ti +.5i
|
1986-08-28 08:59:23 -04:00
|
|
|
.ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
|
|
|
|
.sp
|
|
|
|
|
For example:
|
|
|
|
|
.ti +.5i
|
|
|
|
|
.sp
|
2014-06-28 16:35:14 -07:00
|
|
|
Rule US 1967 1973 \*- Apr lastSun 2:00 1:00 D
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
.fi
|
|
|
|
|
The fields that make up a rule line are:
|
1986-08-28 08:59:23 -04:00
|
|
|
.TP "\w'LETTER/S'u"
|
1986-02-15 17:45:02 -05:00
|
|
|
.B NAME
|
|
|
|
|
Gives the (arbitrary) name of the set of rules this rule is part of.
|
|
|
|
|
.TP
|
|
|
|
|
.B FROM
|
1986-11-15 20:50:47 -05:00
|
|
|
Gives the first year in which the rule applies.
|
2014-09-11 00:29:22 -07:00
|
|
|
Any integer year can be supplied; the proleptic Gregorian calendar is assumed.
|
1986-11-15 20:50:47 -05:00
|
|
|
The word
|
|
|
|
|
.B minimum
|
1994-02-07 09:57:44 -05:00
|
|
|
(or an abbreviation) means the minimum year representable as an integer.
|
1986-11-15 20:50:47 -05:00
|
|
|
The word
|
1986-11-15 20:07:05 -05:00
|
|
|
.B maximum
|
1994-02-07 09:57:44 -05:00
|
|
|
(or an abbreviation) means the maximum year representable as an integer.
|
|
|
|
|
Rules can describe times that are not representable as time values,
|
|
|
|
|
with the unrepresentable times ignored; this allows rules to be portable
|
|
|
|
|
among hosts with differing time value types.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B TO
|
1986-11-15 20:50:47 -05:00
|
|
|
Gives the final year in which the rule applies.
|
|
|
|
|
In addition to
|
|
|
|
|
.B minimum
|
|
|
|
|
and
|
|
|
|
|
.B maximum
|
|
|
|
|
(as above),
|
|
|
|
|
the word
|
1986-08-28 08:59:23 -04:00
|
|
|
.B only
|
1986-11-15 20:50:47 -05:00
|
|
|
(or an abbreviation)
|
1986-02-15 18:33:42 -05:00
|
|
|
may be used to repeat the value of the
|
1986-08-28 08:59:23 -04:00
|
|
|
.B FROM
|
1986-11-15 20:50:47 -05:00
|
|
|
field.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B TYPE
|
2015-07-19 13:17:38 -07:00
|
|
|
should be
|
2014-06-28 16:35:14 -07:00
|
|
|
.q \*-
|
2015-07-19 13:17:38 -07:00
|
|
|
and is present for compatibility with older versions of
|
1986-11-19 19:17:22 -05:00
|
|
|
.I zic
|
2015-07-19 13:17:38 -07:00
|
|
|
in which it could contain year types.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B IN
|
1987-02-21 18:26:25 -05:00
|
|
|
Names the month in which the rule takes effect.
|
|
|
|
|
Month names may be abbreviated.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B ON
|
|
|
|
|
Gives the day on which the rule takes effect.
|
|
|
|
|
Recognized forms include:
|
|
|
|
|
.nf
|
|
|
|
|
.in +.5i
|
|
|
|
|
.sp
|
1986-08-28 08:59:23 -04:00
|
|
|
.ta \w'Sun<=25\0\0'u
|
1986-02-15 17:45:02 -05:00
|
|
|
5 the fifth of the month
|
|
|
|
|
lastSun the last Sunday in the month
|
|
|
|
|
lastMon the last Monday in the month
|
|
|
|
|
Sun>=8 first Sunday on or after the eighth
|
|
|
|
|
Sun<=25 last Sunday on or before the 25th
|
|
|
|
|
.fi
|
|
|
|
|
.in -.5i
|
|
|
|
|
.sp
|
|
|
|
|
Names of days of the week may be abbreviated or spelled out in full.
|
|
|
|
|
Note that there must be no spaces within the
|
|
|
|
|
.B ON
|
1986-02-28 21:31:08 -05:00
|
|
|
field.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B AT
|
1987-04-12 13:01:53 -04:00
|
|
|
Gives the time of day at which the rule takes effect.
|
1986-02-15 17:45:02 -05:00
|
|
|
Recognized forms include:
|
|
|
|
|
.nf
|
|
|
|
|
.in +.5i
|
|
|
|
|
.sp
|
1987-02-21 18:26:25 -05:00
|
|
|
.ta \w'1:28:13\0\0'u
|
1986-02-15 17:45:02 -05:00
|
|
|
2 time in hours
|
|
|
|
|
2:00 time in hours and minutes
|
|
|
|
|
15:00 24-hour format time (for times after noon)
|
|
|
|
|
1:28:14 time in hours, minutes, and seconds
|
2014-06-28 16:35:14 -07:00
|
|
|
\*- equivalent to 0
|
1986-02-15 17:45:02 -05:00
|
|
|
.fi
|
|
|
|
|
.in -.5i
|
1986-12-02 19:22:09 -05:00
|
|
|
.sp
|
1998-10-01 09:55:24 -04:00
|
|
|
where hour 0 is midnight at the start of the day,
|
|
|
|
|
and hour 24 is midnight at the end of the day.
|
1986-12-02 19:22:09 -05:00
|
|
|
Any of these forms may be followed by the letter
|
|
|
|
|
.B w
|
1988-01-25 11:48:50 -05:00
|
|
|
if the given time is local
|
|
|
|
|
.q "wall clock"
|
1994-12-10 11:16:45 -05:00
|
|
|
time,
|
1986-12-02 19:22:09 -05:00
|
|
|
.B s
|
1988-01-25 11:48:50 -05:00
|
|
|
if the given time is local
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "standard"
|
1994-12-10 11:16:45 -05:00
|
|
|
time, or
|
1994-12-05 11:30:49 -05:00
|
|
|
.B u
|
|
|
|
|
(or
|
|
|
|
|
.B g
|
1986-12-02 19:22:09 -05:00
|
|
|
or
|
1994-12-05 11:30:49 -05:00
|
|
|
.BR z )
|
|
|
|
|
if the given time is universal time;
|
|
|
|
|
in the absence of an indicator,
|
1986-12-02 19:22:09 -05:00
|
|
|
wall clock time is assumed.
|
2014-07-08 16:58:15 -07:00
|
|
|
The intent is that a rule line describes the instants when a
|
|
|
|
|
clock/calendar set to the type of time specified in the
|
|
|
|
|
.B AT
|
|
|
|
|
field would show the specified date and time of day.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B SAVE
|
|
|
|
|
Gives the amount of time to be added to local standard time when the rule is in
|
1986-08-28 08:59:23 -04:00
|
|
|
effect.
|
1986-03-05 18:52:03 -05:00
|
|
|
This field has the same format as the
|
1986-02-15 17:45:02 -05:00
|
|
|
.B AT
|
1986-12-02 19:22:09 -05:00
|
|
|
field
|
|
|
|
|
(although, of course, the
|
|
|
|
|
.B w
|
|
|
|
|
and
|
|
|
|
|
.B s
|
|
|
|
|
suffixes are not used).
|
2015-07-14 22:03:06 -07:00
|
|
|
Only the sum of standard time and this amount matters; for example,
|
|
|
|
|
.I zic
|
|
|
|
|
does not distinguish a 10:30 standard time plus an 0:30
|
|
|
|
|
.B SAVE
|
|
|
|
|
from a 10:00 standard time plus a 1:00
|
|
|
|
|
.BR SAVE .
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B LETTER/S
|
1988-01-25 11:48:50 -05:00
|
|
|
Gives the
|
|
|
|
|
.q "variable part"
|
|
|
|
|
(for example, the
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "S"
|
1988-01-25 11:48:50 -05:00
|
|
|
or
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "D"
|
1988-01-25 11:48:50 -05:00
|
|
|
in
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "EST"
|
1988-01-25 11:48:50 -05:00
|
|
|
or
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "EDT" )
|
1988-01-25 11:48:50 -05:00
|
|
|
of time zone abbreviations to be used when this rule is in effect.
|
1986-02-15 17:45:02 -05:00
|
|
|
If this field is
|
2014-06-28 16:35:14 -07:00
|
|
|
.q \*- ,
|
1986-02-15 17:45:02 -05:00
|
|
|
the variable part is null.
|
|
|
|
|
.PP
|
|
|
|
|
A zone line has the form
|
|
|
|
|
.sp
|
|
|
|
|
.nf
|
|
|
|
|
.ti +.5i
|
1994-02-07 09:57:44 -05:00
|
|
|
.ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u
|
2006-10-02 15:32:09 -04:00
|
|
|
Zone NAME GMTOFF RULES/SAVE FORMAT [UNTILYEAR [MONTH [DAY [TIME]]]]
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
For example:
|
|
|
|
|
.sp
|
|
|
|
|
.ti +.5i
|
2014-08-09 19:01:09 -04:00
|
|
|
Zone Australia/Adelaide 9:30 Aus AC%sT 1971 Oct 31 2:00
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
.fi
|
|
|
|
|
The fields that make up a zone line are:
|
1986-08-28 08:59:23 -04:00
|
|
|
.TP "\w'GMTOFF'u"
|
1986-02-15 17:45:02 -05:00
|
|
|
.B NAME
|
|
|
|
|
The name of the time zone.
|
1986-03-06 09:34:53 -05:00
|
|
|
This is the name used in creating the time conversion information file for the
|
|
|
|
|
zone.
|
2014-06-26 23:37:51 -07:00
|
|
|
It should not contain a file name component
|
|
|
|
|
.q ".\&"
|
|
|
|
|
or
|
|
|
|
|
.q ".." ;
|
|
|
|
|
a file name component is a maximal substring that does not contain
|
|
|
|
|
.q "/" .
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B GMTOFF
|
2013-09-04 19:07:31 -07:00
|
|
|
The amount of time to add to UT to get standard time in this zone.
|
1986-02-15 17:45:02 -05:00
|
|
|
This field has the same format as the
|
|
|
|
|
.B AT
|
|
|
|
|
and
|
|
|
|
|
.B SAVE
|
|
|
|
|
fields of rule lines;
|
2013-09-04 19:07:31 -07:00
|
|
|
begin the field with a minus sign if time must be subtracted from UT.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
1986-11-15 20:07:05 -05:00
|
|
|
.B RULES/SAVE
|
1986-10-30 14:39:36 -05:00
|
|
|
The name of the rule(s) that apply in the time zone or,
|
|
|
|
|
alternately, an amount of time to add to local standard time.
|
1986-03-06 09:34:53 -05:00
|
|
|
If this field is
|
2014-06-28 16:35:14 -07:00
|
|
|
.B \*-
|
1986-02-15 17:45:02 -05:00
|
|
|
then standard time always applies in the time zone.
|
2015-07-14 22:03:06 -07:00
|
|
|
When an amount of time is given, only the sum of standard time and
|
|
|
|
|
this amount matters.
|
1986-02-15 17:45:02 -05:00
|
|
|
.TP
|
|
|
|
|
.B FORMAT
|
|
|
|
|
The format for time zone abbreviations in this time zone.
|
1986-03-05 18:52:03 -05:00
|
|
|
The pair of characters
|
1986-08-28 08:59:23 -04:00
|
|
|
.B %s
|
1988-01-25 11:48:50 -05:00
|
|
|
is used to show where the
|
|
|
|
|
.q "variable part"
|
|
|
|
|
of the time zone abbreviation goes.
|
2015-07-19 20:22:55 -07:00
|
|
|
Alternately, a format can use the pair of characters
|
|
|
|
|
.B %z
|
|
|
|
|
to stand for the UTC offset in the form
|
|
|
|
|
.RI \(+- hh ,
|
|
|
|
|
.RI \(+- hhmm ,
|
|
|
|
|
or
|
|
|
|
|
.RI \(+- hhmmss ,
|
|
|
|
|
using the shortest form that does not lose information, where
|
|
|
|
|
.IR hh ,
|
|
|
|
|
.IR mm ,
|
|
|
|
|
and
|
|
|
|
|
.I ss
|
|
|
|
|
are the hours, minutes, and seconds east (+) or west (\(mi) of UTC.
|
1995-01-03 18:54:48 -05:00
|
|
|
Alternately,
|
|
|
|
|
a slash (/)
|
|
|
|
|
separates standard and daylight abbreviations.
|
2015-07-15 10:51:48 -07:00
|
|
|
To conform to POSIX, a time zone abbreviation should contain only
|
|
|
|
|
alphanumeric ASCII characters, "+" and "\*-".
|
1987-11-11 19:06:59 -05:00
|
|
|
.TP
|
2006-10-02 15:32:09 -04:00
|
|
|
.B UNTILYEAR [MONTH [DAY [TIME]]]
|
2013-09-04 19:07:31 -07:00
|
|
|
The time at which the UT offset or the rule(s) change for a location.
|
1987-02-21 18:26:25 -05:00
|
|
|
It is specified as a year, a month, a day, and a time of day.
|
|
|
|
|
If this is specified,
|
2013-09-04 19:07:31 -07:00
|
|
|
the time zone information is generated from the given UT offset
|
2015-06-06 19:02:37 -07:00
|
|
|
and rule change until the time specified, which is interpreted using
|
|
|
|
|
the rules in effect just before the transition.
|
1996-10-09 15:07:06 -04:00
|
|
|
The month, day, and time of day have the same format as the IN, ON, and AT
|
2006-10-02 15:32:09 -04:00
|
|
|
fields of a rule; trailing fields can be omitted, and default to the
|
|
|
|
|
earliest possible value for the missing fields.
|
1986-10-29 18:46:51 -05:00
|
|
|
.IP
|
|
|
|
|
The next line must be a
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "continuation"
|
1988-01-25 11:48:50 -05:00
|
|
|
line; this has the same form as a zone line except that the
|
|
|
|
|
string
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "Zone"
|
1988-01-25 11:48:50 -05:00
|
|
|
and the name are omitted, as the continuation line will
|
1986-10-29 18:46:51 -05:00
|
|
|
place information starting at the time specified as the
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "until"
|
2006-10-02 15:32:09 -04:00
|
|
|
information in the previous line in the file used by the previous line.
|
|
|
|
|
Continuation lines may contain
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "until"
|
2006-10-02 15:32:09 -04:00
|
|
|
information, just as zone lines do, indicating that the next line is a further
|
1986-10-29 18:46:51 -05:00
|
|
|
continuation.
|
1986-02-15 17:45:02 -05:00
|
|
|
.PP
|
2015-07-19 14:55:05 -07:00
|
|
|
If a zone changes at the same instant that a rule would otherwise take
|
|
|
|
|
effect in the earlier zone or continuation line, the rule is ignored.
|
|
|
|
|
In a single zone it is an error if two rules take effect at the same
|
|
|
|
|
instant, or if two zone changes take effect at the same instant.
|
|
|
|
|
.PP
|
1986-02-15 17:45:02 -05:00
|
|
|
A link line has the form
|
|
|
|
|
.sp
|
|
|
|
|
.nf
|
|
|
|
|
.ti +.5i
|
1995-10-30 09:54:10 -05:00
|
|
|
.ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u
|
2014-08-14 14:40:14 -04:00
|
|
|
Link TARGET LINK-NAME
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
For example:
|
|
|
|
|
.sp
|
|
|
|
|
.ti +.5i
|
1995-10-30 09:54:10 -05:00
|
|
|
Link Europe/Istanbul Asia/Istanbul
|
1986-02-15 17:45:02 -05:00
|
|
|
.sp
|
|
|
|
|
.fi
|
|
|
|
|
The
|
2014-08-14 14:40:14 -04:00
|
|
|
.B TARGET
|
1986-02-15 17:45:02 -05:00
|
|
|
field should appear as the
|
|
|
|
|
.B NAME
|
2014-06-26 23:37:51 -07:00
|
|
|
field in some zone line.
|
|
|
|
|
The
|
2014-08-14 14:40:14 -04:00
|
|
|
.B LINK-NAME
|
2014-06-26 23:37:51 -07:00
|
|
|
field is used as an alternate name for that zone;
|
|
|
|
|
it has the same syntax as a zone line's
|
|
|
|
|
.B NAME
|
|
|
|
|
field.
|
1986-02-15 17:45:02 -05:00
|
|
|
.PP
|
1986-10-29 21:52:03 -05:00
|
|
|
Except for continuation lines,
|
|
|
|
|
lines may appear in any order in the input.
|
2013-09-03 16:51:22 -07:00
|
|
|
However, the behavior is unspecified if multiple zone or link lines
|
|
|
|
|
define the same name, or if the source of one link line is the target
|
|
|
|
|
of another.
|
1988-01-25 11:48:50 -05:00
|
|
|
.PP
|
|
|
|
|
Lines in the file that describes leap seconds have the following form:
|
|
|
|
|
.nf
|
|
|
|
|
.ti +.5i
|
|
|
|
|
.ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u
|
1994-02-07 09:57:44 -05:00
|
|
|
.sp
|
1988-01-25 11:48:50 -05:00
|
|
|
Leap YEAR MONTH DAY HH:MM:SS CORR R/S
|
|
|
|
|
.sp
|
|
|
|
|
For example:
|
|
|
|
|
.ti +.5i
|
|
|
|
|
.sp
|
|
|
|
|
Leap 1974 Dec 31 23:59:60 + S
|
|
|
|
|
.sp
|
|
|
|
|
.fi
|
1989-03-30 22:02:12 -05:00
|
|
|
The
|
1988-01-25 11:48:50 -05:00
|
|
|
.BR YEAR ,
|
|
|
|
|
.BR MONTH ,
|
|
|
|
|
.BR DAY ,
|
|
|
|
|
and
|
|
|
|
|
.B HH:MM:SS
|
|
|
|
|
fields tell when the leap second happened.
|
|
|
|
|
The
|
|
|
|
|
.B CORR
|
|
|
|
|
field
|
|
|
|
|
should be
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "+"
|
1988-01-25 11:48:50 -05:00
|
|
|
if a second was added
|
1989-03-30 22:02:12 -05:00
|
|
|
or
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-"
|
1994-02-07 09:57:44 -05:00
|
|
|
if a second was skipped.
|
|
|
|
|
.\" There's no need to document the following, since it's impossible for more
|
|
|
|
|
.\" than one leap second to be inserted or deleted at a time.
|
|
|
|
|
.\" The C Standard is in error in suggesting the possibility.
|
|
|
|
|
.\" See Terry J Quinn, The BIPM and the accurate measure of time,
|
|
|
|
|
.\" Proc IEEE 79, 7 (July 1991), 894-905.
|
|
|
|
|
.\" or
|
|
|
|
|
.\" .q ++
|
|
|
|
|
.\" if two seconds were added
|
|
|
|
|
.\" or
|
|
|
|
|
.\" .q --
|
|
|
|
|
.\" if two seconds were skipped.
|
1988-01-25 11:48:50 -05:00
|
|
|
The
|
|
|
|
|
.B R/S
|
|
|
|
|
field
|
1989-02-17 20:21:24 -05:00
|
|
|
should be (an abbreviation of)
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "Stationary"
|
1997-12-29 09:31:46 -05:00
|
|
|
if the leap second time given by the other fields should be interpreted as UTC
|
1988-01-25 11:48:50 -05:00
|
|
|
or
|
|
|
|
|
(an abbreviation of)
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.q "Rolling"
|
1988-01-25 11:48:50 -05:00
|
|
|
if the leap second time given by the other fields should be interpreted as
|
|
|
|
|
local wall clock time.
|
2007-02-26 09:09:15 -05:00
|
|
|
.SH "EXTENDED EXAMPLE"
|
|
|
|
|
Here is an extended example of
|
|
|
|
|
.I zic
|
|
|
|
|
input, intended to illustrate many of its features.
|
|
|
|
|
.br
|
|
|
|
|
.ne 22
|
|
|
|
|
.nf
|
|
|
|
|
.in +2m
|
|
|
|
|
.ta \w'# Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u
|
|
|
|
|
.sp
|
|
|
|
|
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
2014-06-28 16:35:14 -07:00
|
|
|
Rule Swiss 1941 1942 \*- May Mon>=1 1:00 1:00 S
|
|
|
|
|
Rule Swiss 1941 1942 \*- Oct Mon>=1 2:00 0 \*-
|
2007-02-26 09:09:15 -05:00
|
|
|
.sp .5
|
2014-06-28 16:35:14 -07:00
|
|
|
Rule EU 1977 1980 \*- Apr Sun>=1 1:00u 1:00 S
|
|
|
|
|
Rule EU 1977 only \*- Sep lastSun 1:00u 0 \*-
|
|
|
|
|
Rule EU 1978 only \*- Oct 1 1:00u 0 \*-
|
|
|
|
|
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 \*-
|
2007-02-26 09:09:15 -05:00
|
|
|
.sp
|
2013-09-11 09:17:03 -07:00
|
|
|
.ta \w'# Zone\0\0'u +\w'Europe/Zurich\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u
|
|
|
|
|
# Zone NAME GMTOFF RULES/SAVE FORMAT UNTIL
|
2014-06-28 16:35:14 -07:00
|
|
|
Zone Europe/Zurich 0:34:08 \*- LMT 1853 Jul 16
|
|
|
|
|
0:29:46 \*- BMT 1894 Jun
|
2007-02-26 09:09:15 -05:00
|
|
|
1:00 Swiss CE%sT 1981
|
|
|
|
|
1:00 EU CE%sT
|
|
|
|
|
.sp
|
|
|
|
|
Link Europe/Zurich Switzerland
|
|
|
|
|
.sp
|
|
|
|
|
.in
|
|
|
|
|
.fi
|
|
|
|
|
In this example, the zone is named Europe/Zurich but it has an alias
|
2013-09-11 09:17:03 -07:00
|
|
|
as Switzerland. This example says that Zurich was 34 minutes and 8
|
2013-09-11 18:28:36 -07:00
|
|
|
seconds west of UT until 1853-07-16 at 00:00, when the legal offset
|
2013-09-11 09:17:03 -07:00
|
|
|
was changed to 7\(de\|26\(fm\|22.50\(sd; although this works out to
|
2013-09-11 18:28:36 -07:00
|
|
|
0:29:45.50, the input format cannot represent fractional seconds so it
|
2013-09-11 09:17:03 -07:00
|
|
|
is rounded here. After 1894-06-01 at 00:00 Swiss daylight saving rules
|
|
|
|
|
(defined with lines beginning with "Rule Swiss") apply, and the UT offset
|
2007-02-26 09:09:15 -05:00
|
|
|
became one hour. From 1981 to the present, EU daylight saving rules have
|
|
|
|
|
applied, and the UTC offset has remained at one hour.
|
|
|
|
|
.PP
|
2013-09-11 01:54:41 -07:00
|
|
|
In 1941 and 1942, daylight saving time applied from the first Monday
|
|
|
|
|
in May at 01:00 to the first Monday in October at 02:00.
|
2007-02-26 09:09:15 -05:00
|
|
|
The pre-1981 EU daylight-saving rules have no effect
|
|
|
|
|
here, but are included for completeness. Since 1981, daylight
|
|
|
|
|
saving has begun on the last Sunday in March at 01:00 UTC.
|
|
|
|
|
Until 1995 it ended the last Sunday in September at 01:00 UTC,
|
|
|
|
|
but this changed to the last Sunday in October starting in 1996.
|
|
|
|
|
.PP
|
|
|
|
|
For purposes of
|
|
|
|
|
display, "LMT" and "BMT" were initially used, respectively. Since
|
|
|
|
|
Swiss rules and later EU rules were applied, the display name for the
|
2014-08-09 14:11:44 -07:00
|
|
|
time zone has been CET for standard time and CEST for daylight saving
|
2007-02-26 09:09:15 -05:00
|
|
|
time.
|
2006-01-24 12:03:12 -05:00
|
|
|
.SH NOTES
|
1986-12-02 19:22:09 -05:00
|
|
|
For areas with more than two types of local time,
|
|
|
|
|
you may need to use local standard time in the
|
|
|
|
|
.B AT
|
|
|
|
|
field of the earliest transition time's rule to ensure that
|
|
|
|
|
the earliest transition time recorded in the compiled file is correct.
|
2006-01-24 12:03:12 -05:00
|
|
|
.PP
|
|
|
|
|
If,
|
|
|
|
|
for a particular zone,
|
|
|
|
|
a clock advance caused by the start of daylight saving
|
|
|
|
|
coincides with and is equal to
|
2013-09-04 19:07:31 -07:00
|
|
|
a clock retreat caused by a change in UT offset,
|
2006-01-24 12:03:12 -05:00
|
|
|
.IR zic
|
2013-09-04 19:07:31 -07:00
|
|
|
produces a single transition to daylight saving at the new UT offset
|
2006-01-24 12:03:12 -05:00
|
|
|
(without any change in wall clock time).
|
2006-01-26 09:15:03 -05:00
|
|
|
To get separate transitions
|
|
|
|
|
use multiple zone continuation lines
|
|
|
|
|
specifying transition instants using universal time.
|
zic: work around GNOME bug by refusing to go back before the Big Bang
This works around Gnome bug 730332
<https://bugzilla.gnome.org/show_bug.cgi?id=730332>.
zic 2014c introduced the idea of generating a transition at the
minimum time value -2**63, to avoid ambiguities about what to do
before the first real transition. Through Glib release 2.40, the
interval_end function of Glib's gtimezone.c subtracts one from
this, to find the end time of the zeroth interval (i.e., the
interval containing all the "early" time stamps); this subtraction
typically overflows and wraps around to 2**63 - 1, which causes
Glib to go off the rails and assume that all time stamps are
"early". For example, Glib computes Sao Paulo time stamps as if
Brazil's circa-1913 rules were still in effect.
(Thanks to Leonardo Chiquitto for reporting the bug.)
Work around the bug by not generating time stamps equal to -2**63.
Come to think of it, time stamps before the Big Bang are physically
suspect anyway, so don't generate time stamps before the Big Bang.
* Makefile (GCC_DEBUG_FLAGS): Add comment re BIG_BANG.
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): New macro.
(big_bang_time): New constant.
(writezone, outzone, addtt): Compare to big_bang_time, not to
min_time, when deciding whether to output a time stamp.
2014-05-23 22:56:18 -03:00
|
|
|
.PP
|
2014-05-26 17:21:38 -07:00
|
|
|
Time stamps well before the Big Bang are silently omitted from the output.
|
zic: work around GNOME bug by refusing to go back before the Big Bang
This works around Gnome bug 730332
<https://bugzilla.gnome.org/show_bug.cgi?id=730332>.
zic 2014c introduced the idea of generating a transition at the
minimum time value -2**63, to avoid ambiguities about what to do
before the first real transition. Through Glib release 2.40, the
interval_end function of Glib's gtimezone.c subtracts one from
this, to find the end time of the zeroth interval (i.e., the
interval containing all the "early" time stamps); this subtraction
typically overflows and wraps around to 2**63 - 1, which causes
Glib to go off the rails and assume that all time stamps are
"early". For example, Glib computes Sao Paulo time stamps as if
Brazil's circa-1913 rules were still in effect.
(Thanks to Leonardo Chiquitto for reporting the bug.)
Work around the bug by not generating time stamps equal to -2**63.
Come to think of it, time stamps before the Big Bang are physically
suspect anyway, so don't generate time stamps before the Big Bang.
* Makefile (GCC_DEBUG_FLAGS): Add comment re BIG_BANG.
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): New macro.
(big_bang_time): New constant.
(writezone, outzone, addtt): Compare to big_bang_time, not to
min_time, when deciding whether to output a time stamp.
2014-05-23 22:56:18 -03:00
|
|
|
This works around bugs in software that mishandles large negative time
|
|
|
|
|
stamps. Call it sour grapes, but pre-Big-Bang time stamps are
|
2014-05-26 17:21:38 -07:00
|
|
|
physically suspect anyway. The pre-Big-Bang cutoff time is
|
zic: work around GNOME bug by refusing to go back before the Big Bang
This works around Gnome bug 730332
<https://bugzilla.gnome.org/show_bug.cgi?id=730332>.
zic 2014c introduced the idea of generating a transition at the
minimum time value -2**63, to avoid ambiguities about what to do
before the first real transition. Through Glib release 2.40, the
interval_end function of Glib's gtimezone.c subtracts one from
this, to find the end time of the zeroth interval (i.e., the
interval containing all the "early" time stamps); this subtraction
typically overflows and wraps around to 2**63 - 1, which causes
Glib to go off the rails and assume that all time stamps are
"early". For example, Glib computes Sao Paulo time stamps as if
Brazil's circa-1913 rules were still in effect.
(Thanks to Leonardo Chiquitto for reporting the bug.)
Work around the bug by not generating time stamps equal to -2**63.
Come to think of it, time stamps before the Big Bang are physically
suspect anyway, so don't generate time stamps before the Big Bang.
* Makefile (GCC_DEBUG_FLAGS): Add comment re BIG_BANG.
* NEWS, zic.8 (NOTES): Document this.
* zic.c (BIG_BANG): New macro.
(big_bang_time): New constant.
(writezone, outzone, addtt): Compare to big_bang_time, not to
min_time, when deciding whether to output a time stamp.
2014-05-23 22:56:18 -03:00
|
|
|
approximate and may change in future versions.
|
1989-03-04 14:43:06 -05:00
|
|
|
.SH FILE
|
1989-03-22 18:09:11 -05:00
|
|
|
/usr/local/etc/zoneinfo standard directory used for created files
|
1986-02-15 17:45:02 -05:00
|
|
|
.SH "SEE ALSO"
|
1986-12-26 22:45:11 -05:00
|
|
|
newctime(3), tzfile(5), zdump(8)
|
2009-05-17 14:37:50 -04:00
|
|
|
.\" This file is in the public domain, so clarified as of
|
|
|
|
|
.\" 2009-05-17 by Arthur David Olson.
|