Linux "zic" Command Line Options and Examples
timezone compiler

The zic program reads text from the file(s) named on the command line and creates the time conversion informa‐ tion files specified in this input. If a filename is -, standard input is read. These options are available: -d directory Create time conversion information files in the named directory rather than in the standard directory named below.


Usage:

zic [-v] [-d directory] [-l localtime] [-p posixrules]
      [-L leapsecondfilename] [-s] [-y command] [filename...]






Command Line Options:

-d
Create time conversion information files in the named directory rather than in the standard directorynamed below.
zic -d ...
-l
Use the given timezone as local time. zic will act as if the input contained a link line of the formLink timezone localtime
zic -l ...
-p
Use the given timezone's rules when handling POSIX-format timezone environment variables. zic will actas if the input contained a link line of the formLink timezone posixrules
zic -p ...
-L
Read leap second information from the file with the given name. If this option is not used, no leapsecond information appears in output files.
zic -L ...
-y
Use the given command rather than yearistype when checking year types (see below).Input lines are made up of fields. Fields are separated from one another by any number of white space charac‐ters. Leading and trailing white space on input lines is ignored. An unquoted sharp character (#) in theinput introduces a comment which extends to the end of the line the sharp character appears on. White spacecharacters 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. Nonblank lines are expected to be of one ofthree types: rule lines, zone lines, and link lines.A rule line has the formRule NAME FROM TO TYPE IN ON AT SAVE LETTER/SFor example:Rule US 1967 1973 - Apr lastSun 2:00 1:00 DThe fields that make up a rule line are:NAME Gives the (arbitrary) name of the set of rules this rule is part of.FROM Gives the first year in which the rule applies. Any integer year can be supplied; the Gregorian cal‐endar is assumed. The word minimum (or an abbreviation) means the minimum year representable as aninteger. The word 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 timesignored; this allows rules to be portable among hosts with differing time value types.TO Gives the final year in which the rule applies. In addition to minimum and maximum (as above), theword only (or an abbreviation) may be used to repeat the value of the FROM field.TYPE Gives the type of year in which the rule applies. If TYPE is -, then the rule applies in all yearsbetween FROM and TO inclusive. If TYPE is something else, then zic executes the commandyearistype year typeto check the type of a year: an exit status of zero is taken to mean that the year is of the giventype; an exit status of one is taken to mean that the year is not of the given type.IN Names the month in which the rule takes effect. Month names may be abbreviated.ON Gives the day on which the rule takes effect. Recognized forms include:5 the fifth of the monthlastSun the last Sunday in the monthlastMon the last Monday in the monthSun>=8 first Sunday on or after the eighthSun<=25 last Sunday on or before the 25thNames of days of the week may be abbreviated or spelled out in full. Note that there must be no spaces withinthe ON field.AT Gives the time of day at which the rule takes effect. Recognized forms include:2 time in hours2:00 time in hours and minutes15:00 24-hour format time (for times after noon)1:28:14 time in hours, minutes, and seconds
zic -y ...
-
where hour 0 is midnight at the start of the day, and hour 24 is midnight at the end of the day. Any of theseforms may be followed by the letter w if the given time is local "wall clock" time, s if the given time islocal "standard" time, or u (or g or z) if the given time is universal time; in the absence of an indicator,wall clock time is assumed.SAVE Gives the amount of time to be added to local standard time when the rule is in effect. This field hasthe same format as the AT field (although, of course, the w and s suffixes are not used).LETTER/SGives the "variable part" (for example, the "S" or "D" in "EST" or "EDT") of timezone abbreviations tobe used when this rule is in effect. If this field is -, the variable part is null.A zone line has the formZone NAME UTCOFF RULES/SAVE FORMAT [UNTIL]For example:Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00The fields that make up a zone line are:NAME The name of the timezone. This is the name used in creating the time conversion information file forthe zone.UTCOFFThe amount of time to add to UTC to get standard time in this zone. This field has the same format asthe AT and SAVE fields of rule lines; begin the field with a minus sign if time must be subtracted fromUTC.RULES/SAVEThe name of the rule(s) that apply in the timezone or, alternately, an amount of time to add to localstandard time. If this field is -, then standard time always applies in the timezone.FORMATThe format for timezone abbreviations in this timezone. The pair of characters %s is used to show wherethe "variable part" of the timezone abbreviation goes. Alternately, a slash (/) separates standard anddaylight abbreviations.UNTIL The time at which the UTC offset or the rule(s) change for a location. It is specified as a year, amonth, a day, and a time of day. If this is specified, the timezone information is generated from thegiven UTC offset and rule change until the time specified. The month, day, and time of day have thesame format as the IN, ON, and AT columns of a rule; trailing columns can be omitted, and default to theearliest possible value for the missing columns.The next line must be a "continuation" line; this has the same form as a zone line except that thestring "Zone" and the name are omitted, as the continuation line will place information starting at thetime specified as the UNTIL field in the previous line in the file used by the previous line. Continua‐tion lines may contain an UNTIL field, just as zone lines do, indicating that the next line is a furthercontinuation.A link line has the formLink LINK-FROM LINK-TOFor example:Link Europe/Istanbul Asia/IstanbulThe LINK-FROM field should appear as the NAME field in some zone line; the LINK-TO field is used as an alter‐nate name for that zone.Except for continuation lines, lines may appear in any order in the input.Lines in the file that describes leap seconds have the following form:Leap YEAR MONTH DAY HH:MM:SS CORR R/SFor example:Leap 1974 Dec 31 23:59:60 + SThe YEAR, MONTH, DAY, and HH:MM:SS fields tell when the leap second happened. The CORR field should be "+" ifa second was added or "-" if a second was skipped. The R/S field should be (an abbreviation of) "Stationary"if the leap second time given by the other fields should be interpreted as UTC or (an abbreviation of)"Rolling" if the leap second time given by the other fields should be interpreted as local wall clock time.FILES/usr/local/etc/zoneinfoStandard directory used for created files.NOTESFor areas with more than two types of local time, you may need to use local standard time in the AT field ofthe earliest transition time's rule to ensure that the earliest transition time recorded in the compiled fileis correct.
zic - ...