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
 |