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
 | 
