bytes that represent time zone designations,
which are null-terminated byte strings, each indexed by the
.B tt_desigidx
-values mentioned above.
+values mentioned above, and each corresponding to a time zone abbreviation.
The byte strings can overlap if one is a suffix of the other.
The encoding of these strings is not specified.
.IP \(bu
a proleptic TZ string that lacks rules.
For example, when TZ="EET\-2EEST" and there is no TZif file "EET\-2EEST",
the idea was to adapt the transition times from a TZif file with the
-well-known name "posixrules" that is present only for this purpose and
-is a copy of the file "Europe/Brussels", a file with a different UT offset.
+well-known name "posixrules" that was present only for this purpose and
+was a copy of the file "Europe/Brussels", a file with a different UT offset.
POSIX does not specify the details of this obsolete transformational behavior,
the default rules are installation-dependent, and no implementation
is known to support this feature for timestamps past 2037,
so users desiring (say) Greek time should instead specify
TZ="Europe/Athens" for better historical coverage, falling back on
-TZ="EET\-2EEST,M3.5.0/3,M10.5.0/4" if POSIX conformance is required
+TZ="EET\-2EEST,M3.5.0/3,M10.5.0/4"
+if conformance to POSIX.1-2017 or earlier is required
and older timestamps need not be handled accurately.
.PP
The
or for all instants if the file has no transitions.
The TZ string is empty (i.e., nothing between the newlines)
if there is no proleptic representation for such instants.
+.PP
If non-empty, the TZ string must agree with the local time
type after the last transition time if present in the eight-byte data;
for example, given the string
type must specify a daylight-saving time abbreviated
.q "WEST"
that is one hour east of UT.
+.PP
+The TZ string can contain time zone abbreviations and UT offsets that
+do not appear elsewhere in the TZif file.
+.PP
Also, if there is at least one transition, time type 0 is associated
with the time period from the indefinite past up to but not including
the earliest transition time.
post-expiration timestamps, or process them as if the expiration
time did not exist (possibly with an error indication).
.PP
-Time zone designations should consist of at least three (3)
+Time zone abbreviations should consist of at least three (3)
and no more than six (6) ASCII characters from the set of
alphanumerics,
.q "\-",
This is for compatibility with POSIX requirements for
time zone abbreviations.
.PP
+A numeric time zone abbreviation should match the UT offset.
+For example, "+0530" should be used only if the UT offset is 5.5 hours
+ahead of UT, and "\-00" should be used only if the UT offset is zero.
+.PP
When reading a version 2 or higher file, readers
should ignore the version 1 header and data block except for
the purpose of skipping over them.
than necessary, so that only far-future timestamps are
mishandled by version 2 readers.
.IP \(bu
+Some readers might mishandle timestamps after a file's last transition,
+because they require that all abbreviations or UT offsets
+in the proleptic TZ string must also occur somewhere in the file's tables
+of time zone designations and local time type records.
+As a workaround, a writer can output more transitions than necessary,
+so that the other tables contain duplicates of the proleptic TZ string's
+abbreviations and offsets.
+.IP \(bu
Some readers designed for version 2 do not support
permanent daylight saving time with transitions after 24:00
\(en e.g., a TZ string
.PP
Olson A, Eggert P, Murchison K. The Time Zone Information Format (TZif).
October 2024.
-.UR https:\://\:www.rfc-editor.org/\:rfc/\:rfc9636
+.UR https://\:www.rfc-editor.org/\:rfc/\:rfc9636
Internet RFC 9636
.UE
-.UR https:\://\:doi.org/\:10.17487/\:RFC9636
+.UR https://\:doi.org/\:10.17487/\:RFC9636
doi:10.17487/RFC9636
.UE .
.el .ds < \(la
.ie '\(ra'' .ds > >
.el .ds > \(ra
-.ie \n(.g .ds : \:
-.el .ds : .
.ds d " degrees
.ds m " minutes
.ds s " seconds
.BR fat ,
generate additional data entries that work around potential bugs or
incompatibilities in older software, such as software that mishandles
-the 64-bit generated data.
+a TZif file's 64-bit data or proleptic TZ string.
If
.I bloat
is
and incompatibilities.
The default is
.BR slim ,
-as software that mishandles 64-bit data typically
-mishandles timestamps after the year 2038 anyway.
+as the
+.B fat
+workarounds are typically good only until the year 2038 anyway.
Also see the
.B \-r
option for another way to alter output size.
.TP
+.BI \-D
+Do not create ancestor directories of output files,
+For example, for a zone named America/Los_Angeles
+the directory America should already exist.
+By default, the directory and its ancestors are created
+if they do not already exist.
.BI "\-d " directory
Create time conversion information files in the named directory rather than
in the standard directory named below.
.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.
+no leap second information appears in output files;
+this is required by some TZif readers.
.TP
.BI "\-p " timezone
-Use
-.IR timezone 's
-rules when handling nonstandard
-TZ strings like "EET\-2EEST" that lack transition rules.
-.B zic
-will act as if the input contained a link line of the form
+Act as if the input contained a link line of the form
.sp
.ti +2
Link \fItimezone\fP posixrules
Unless
.I timezone is
.q "\-" ,
-this option is obsolete and poorly supported.
+this option is obsolete and is no longer supported by most runtimes.
Among other things it should not be used for timestamps after the year 2037,
and it should not be combined with
.B "\-b slim"
if
.IR timezone 's
transitions are at standard time or Universal Time (UT) instead of local time.
+The option is present only to support obsolete runtimes that used
+.IR timezone 's
+rules when handling obsolescent
+TZ strings like "AST4ADT" that lack transition rules;
+modern runtimes that support these TZ strings
+typically just use current US rules
+as the TZ strings were mainly used in the US.
+Similarly, any Zone or Link named "posixrules" is obsolete and problematic.
+.TP
+.BI "\-m " mode
+Create TZif files with the given file mode bits.
+By default the files are created with mode 644 as modified by the umask.
+With this option they are created with the given mode instead.
+For portability the mode should be an unsigned octal integer,
+typically 644 or 444;
+some platforms also support
+.BR chmod (1)-style
+symbolic modes.
+This option does not affect created ancestor directories,
+which have mode 755 as modified by the umask.
+The option is ignored on platforms lacking the notion of file mode bits.
.TP
.BR "\-r " "[\fB@\fP\fIlo\fP][\fB/@\fP\fIhi\fP]"
Limit the applicability of output files
When creating local time information, put the configuration link in
the named file rather than in the standard location.
.TP
+.BI "\-u " owner\fR[:\fPgroup\fR]\fP
+Change the output regular files' owner and group to those specified.
+The
+.I owner
+is either a user name, or an unsigned decimal integer user ID,
+or an empty string meaning no change to the owner.
+The
+.I group
+is similar for group names and IDs.
+This option does not affect directories or hard or symbolic links.
+It typically needs special privileges to change ownership,
+and is ignored on platforms that lack the notions of owners and groups.
+.TP
.B \-v
Be more verbose, and complain about the following situations:
.RS
most 2048 bytes counting the newline, 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)
-\*<https://pubs\*:.opengroup\*:.org/\*:onlinepubs/\*:9699919799/\*:basedefs/\*:V1_chap06\*:.html\*>
+for the
+.UR https://\:pubs\:.opengroup\:.org/\:onlinepubs/\:9799919799/\:basedefs/\:V1_chap06\:.html
+POSIX Portable Character Set (PPCS)
+.UE
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
.in
.fi
Here, an incorrect reading would be there were two clock changes on 1973-04-29,
-the first from 02:00 EST (\-05) to 01:00 CST (\-06),
-and the second an hour later from 02:00 CST (\-06) to 03:00 CDT (\-05).
+the first from 02:00 EST (\-05) to 01:00 CST (\-06) according to the
+.q "until"
+value in the zone line,
+and the second an hour later from 02:00 CST (\-06) to 03:00 CDT (\-05)
+according to the values in the April rule line.
However,
.B zic
-interprets this more sensibly as a single transition from 02:00 CST (\-05) to
+interprets this more sensibly as a single transition from 02:00 EST (\-05) to
02:00 CDT (\-05).
.PP
A link line has the form