437 lines
9.9 KiB
Groff
437 lines
9.9 KiB
Groff
|
.TH ZIC 8
|
||
|
.SH NAME
|
||
|
zic \- time zone compiler
|
||
|
.SH SYNOPSIS
|
||
|
.B zic
|
||
|
[
|
||
|
.B \-\-version
|
||
|
]
|
||
|
[
|
||
|
.B \-v
|
||
|
] [
|
||
|
.B \-d
|
||
|
.I directory
|
||
|
] [
|
||
|
.B \-l
|
||
|
.I localtime
|
||
|
] [
|
||
|
.B \-p
|
||
|
.I posixrules
|
||
|
] [
|
||
|
.B \-L
|
||
|
.I leapsecondfilename
|
||
|
] [
|
||
|
.B \-s
|
||
|
] [
|
||
|
.B \-y
|
||
|
.I command
|
||
|
] [
|
||
|
.I filename
|
||
|
\&... ]
|
||
|
.SH DESCRIPTION
|
||
|
.if t .ds lq ``
|
||
|
.if t .ds rq ''
|
||
|
.if n .ds lq \&"\"
|
||
|
.if n .ds rq \&"\"
|
||
|
.de q
|
||
|
\\$3\*(lq\\$1\*(rq\\$2
|
||
|
..
|
||
|
.I Zic
|
||
|
reads text from the file(s) named on the command line
|
||
|
and creates the time conversion information files specified in this input.
|
||
|
If a
|
||
|
.I filename
|
||
|
is
|
||
|
.BR \- ,
|
||
|
the standard input is read.
|
||
|
.PP
|
||
|
These options are available:
|
||
|
.TP
|
||
|
.BI "\-\-version"
|
||
|
Output version information and exit.
|
||
|
.TP
|
||
|
.BI "\-d " directory
|
||
|
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.
|
||
|
.I Zic
|
||
|
will act as if the input contained a link line of the form
|
||
|
.sp
|
||
|
.ti +.5i
|
||
|
Link \fItimezone\fP localtime
|
||
|
.TP
|
||
|
.BI "\-p " timezone
|
||
|
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
|
||
|
.BI "\-L " leapsecondfilename
|
||
|
Read leap second information from the file with the given name.
|
||
|
If this option is not used,
|
||
|
no leap second information appears in output files.
|
||
|
.TP
|
||
|
.B \-v
|
||
|
Complain if a year that appears in a data file is outside the range
|
||
|
of years representable by
|
||
|
.IR time (2)
|
||
|
values.
|
||
|
Also complain if a time of 24:00
|
||
|
(which cannot be handled by pre-1998 versions of
|
||
|
.IR zic )
|
||
|
appears in the input.
|
||
|
.TP
|
||
|
.B \-s
|
||
|
Limit time values stored in output files to values that are the same
|
||
|
whether they're taken to be signed or unsigned.
|
||
|
You can use this option to generate SVVS-compatible files.
|
||
|
.TP
|
||
|
.BI "\-y " command
|
||
|
Use the given
|
||
|
.I command
|
||
|
rather than
|
||
|
.B yearistype
|
||
|
when checking year types (see below).
|
||
|
.PP
|
||
|
Input lines are made up of fields.
|
||
|
Fields are separated from one another by any number of white space characters.
|
||
|
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.
|
||
|
Any line that is blank (after comment stripping) is ignored.
|
||
|
Non-blank lines are expected to be of one of three types:
|
||
|
rule lines, zone lines, and link lines.
|
||
|
.PP
|
||
|
A rule line has the form
|
||
|
.nf
|
||
|
.ti +.5i
|
||
|
.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
|
||
|
.sp
|
||
|
For example:
|
||
|
.ti +.5i
|
||
|
.sp
|
||
|
Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D
|
||
|
.sp
|
||
|
.fi
|
||
|
The fields that make up a rule line are:
|
||
|
.TP "\w'LETTER/S'u"
|
||
|
.B NAME
|
||
|
Gives the (arbitrary) name of the set of rules this rule is part of.
|
||
|
.TP
|
||
|
.B FROM
|
||
|
Gives the first year in which the rule applies.
|
||
|
Any integer year can be supplied; the Gregorian calendar is assumed.
|
||
|
The word
|
||
|
.B minimum
|
||
|
(or an abbreviation) means the minimum year representable as an integer.
|
||
|
The word
|
||
|
.B maximum
|
||
|
(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.
|
||
|
.TP
|
||
|
.B TO
|
||
|
Gives the final year in which the rule applies.
|
||
|
In addition to
|
||
|
.B minimum
|
||
|
and
|
||
|
.B maximum
|
||
|
(as above),
|
||
|
the word
|
||
|
.B only
|
||
|
(or an abbreviation)
|
||
|
may be used to repeat the value of the
|
||
|
.B FROM
|
||
|
field.
|
||
|
.TP
|
||
|
.B TYPE
|
||
|
Gives the type of year in which the rule applies.
|
||
|
If
|
||
|
.B TYPE
|
||
|
is
|
||
|
.B \-
|
||
|
then the rule applies in all years between
|
||
|
.B FROM
|
||
|
and
|
||
|
.B TO
|
||
|
inclusive.
|
||
|
If
|
||
|
.B TYPE
|
||
|
is something else, then
|
||
|
.I zic
|
||
|
executes the command
|
||
|
.ti +.5i
|
||
|
\fByearistype\fP \fIyear\fP \fItype\fP
|
||
|
.br
|
||
|
to check the type of a year:
|
||
|
an exit status of zero is taken to mean that the year is of the given type;
|
||
|
an exit status of one is taken to mean that the year is not of the given type.
|
||
|
.TP
|
||
|
.B IN
|
||
|
Names the month in which the rule takes effect.
|
||
|
Month names may be abbreviated.
|
||
|
.TP
|
||
|
.B ON
|
||
|
Gives the day on which the rule takes effect.
|
||
|
Recognized forms include:
|
||
|
.nf
|
||
|
.in +.5i
|
||
|
.sp
|
||
|
.ta \w'Sun<=25\0\0'u
|
||
|
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
|
||
|
field.
|
||
|
.TP
|
||
|
.B AT
|
||
|
Gives the time of day at which the rule takes effect.
|
||
|
Recognized forms include:
|
||
|
.nf
|
||
|
.in +.5i
|
||
|
.sp
|
||
|
.ta \w'1:28:13\0\0'u
|
||
|
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
|
||
|
\- equivalent to 0
|
||
|
.fi
|
||
|
.in -.5i
|
||
|
.sp
|
||
|
where hour 0 is midnight at the start of the day,
|
||
|
and hour 24 is midnight at the end of the day.
|
||
|
Any of these forms may be followed by the letter
|
||
|
.B w
|
||
|
if the given time is local
|
||
|
.q "wall clock"
|
||
|
time,
|
||
|
.B s
|
||
|
if the given time is local
|
||
|
.q standard
|
||
|
time, or
|
||
|
.B u
|
||
|
(or
|
||
|
.B g
|
||
|
or
|
||
|
.BR z )
|
||
|
if the given time is universal time;
|
||
|
in the absence of an indicator,
|
||
|
wall clock time is assumed.
|
||
|
.TP
|
||
|
.B SAVE
|
||
|
Gives the amount of time to be added to local standard time when the rule is in
|
||
|
effect.
|
||
|
This field has the same format as the
|
||
|
.B AT
|
||
|
field
|
||
|
(although, of course, the
|
||
|
.B w
|
||
|
and
|
||
|
.B s
|
||
|
suffixes are not used).
|
||
|
.TP
|
||
|
.B LETTER/S
|
||
|
Gives the
|
||
|
.q "variable part"
|
||
|
(for example, the
|
||
|
.q S
|
||
|
or
|
||
|
.q D
|
||
|
in
|
||
|
.q EST
|
||
|
or
|
||
|
.q EDT )
|
||
|
of time zone abbreviations to be used when this rule is in effect.
|
||
|
If this field is
|
||
|
.BR \- ,
|
||
|
the variable part is null.
|
||
|
.PP
|
||
|
A zone line has the form
|
||
|
.sp
|
||
|
.nf
|
||
|
.ti +.5i
|
||
|
.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
|
||
|
Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||
|
.sp
|
||
|
For example:
|
||
|
.sp
|
||
|
.ti +.5i
|
||
|
Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00
|
||
|
.sp
|
||
|
.fi
|
||
|
The fields that make up a zone line are:
|
||
|
.TP "\w'GMTOFF'u"
|
||
|
.B NAME
|
||
|
The name of the time zone.
|
||
|
This is the name used in creating the time conversion information file for the
|
||
|
zone.
|
||
|
.TP
|
||
|
.B GMTOFF
|
||
|
The amount of time to add to UTC to get standard time in this zone.
|
||
|
This field has the same format as the
|
||
|
.B AT
|
||
|
and
|
||
|
.B SAVE
|
||
|
fields of rule lines;
|
||
|
begin the field with a minus sign if time must be subtracted from UTC.
|
||
|
.TP
|
||
|
.B RULES/SAVE
|
||
|
The name of the rule(s) that apply in the time zone or,
|
||
|
alternately, an amount of time to add to local standard time.
|
||
|
If this field is
|
||
|
.B \-
|
||
|
then standard time always applies in the time zone.
|
||
|
.TP
|
||
|
.B FORMAT
|
||
|
The format for time zone abbreviations in this time zone.
|
||
|
The pair of characters
|
||
|
.B %s
|
||
|
is used to show where the
|
||
|
.q "variable part"
|
||
|
of the time zone abbreviation goes.
|
||
|
Alternately,
|
||
|
a slash (/)
|
||
|
separates standard and daylight abbreviations.
|
||
|
.TP
|
||
|
.B UNTIL
|
||
|
The time at which the UTC offset or the rule(s) change for a location.
|
||
|
It is specified as a year, a month, a day, and a time of day.
|
||
|
If this is specified,
|
||
|
the time zone information is generated from the given UTC offset
|
||
|
and rule change until the time specified.
|
||
|
The month, day, and time of day have the same format as the IN, ON, and AT
|
||
|
columns of a rule; trailing columns can be omitted, and default to the
|
||
|
earliest possible value for the missing columns.
|
||
|
.IP
|
||
|
The next line must be a
|
||
|
.q continuation
|
||
|
line; this has the same form as a zone line except that the
|
||
|
string
|
||
|
.q Zone
|
||
|
and the name are omitted, as the continuation line will
|
||
|
place information starting at the time specified as the
|
||
|
.B UNTIL
|
||
|
field in the previous line in the file used by the previous line.
|
||
|
Continuation lines may contain an
|
||
|
.B UNTIL
|
||
|
field, just as zone lines do, indicating that the next line is a further
|
||
|
continuation.
|
||
|
.PP
|
||
|
A link line has the form
|
||
|
.sp
|
||
|
.nf
|
||
|
.ti +.5i
|
||
|
.ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u
|
||
|
Link LINK-FROM LINK-TO
|
||
|
.sp
|
||
|
For example:
|
||
|
.sp
|
||
|
.ti +.5i
|
||
|
Link Europe/Istanbul Asia/Istanbul
|
||
|
.sp
|
||
|
.fi
|
||
|
The
|
||
|
.B LINK-FROM
|
||
|
field should appear as the
|
||
|
.B NAME
|
||
|
field in some zone line;
|
||
|
the
|
||
|
.B LINK-TO
|
||
|
field is used as an alternate name for that zone.
|
||
|
.PP
|
||
|
Except for continuation lines,
|
||
|
lines may appear in any order in the input.
|
||
|
.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
|
||
|
.sp
|
||
|
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
|
||
|
The
|
||
|
.BR YEAR ,
|
||
|
.BR MONTH ,
|
||
|
.BR DAY ,
|
||
|
and
|
||
|
.B HH:MM:SS
|
||
|
fields tell when the leap second happened.
|
||
|
The
|
||
|
.B CORR
|
||
|
field
|
||
|
should be
|
||
|
.q +
|
||
|
if a second was added
|
||
|
or
|
||
|
.q -
|
||
|
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.
|
||
|
The
|
||
|
.B R/S
|
||
|
field
|
||
|
should be (an abbreviation of)
|
||
|
.q Stationary
|
||
|
if the leap second time given by the other fields should be interpreted as UTC
|
||
|
or
|
||
|
(an abbreviation of)
|
||
|
.q Rolling
|
||
|
if the leap second time given by the other fields should be interpreted as
|
||
|
local wall clock time.
|
||
|
.SH NOTES
|
||
|
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.
|
||
|
.PP
|
||
|
If,
|
||
|
for a particular zone,
|
||
|
a clock advance caused by the start of daylight saving
|
||
|
coincides with and is equal to
|
||
|
a clock retreat caused by a change in UTC offset,
|
||
|
.IR zic
|
||
|
produces a single transition to daylight saving at the new UTC offset
|
||
|
(without any change in wall clock time).
|
||
|
To get separate transitions
|
||
|
use multiple zone continuation lines
|
||
|
specifying transition instants using universal time.
|
||
|
.SH FILE
|
||
|
/usr/share/zoneinfo standard directory used for created files
|
||
|
.SH "SEE ALSO"
|
||
|
newctime(3), tzfile(5), zdump(8)
|
||
|
.\" @(#)zic.8 7.24
|