mirror of https://github.com/mkerrisk/man-pages
tzfile.5: Add various details on version 2 format
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
ea735ea85e
commit
f09abf6d41
|
@ -20,7 +20,7 @@ Timezone information files
|
||||||
begin with the magic characters "TZif" to identify them as
|
begin with the magic characters "TZif" to identify them as
|
||||||
timezone information files,
|
timezone information files,
|
||||||
followed by a character identifying the version of the file's format
|
followed by a character identifying the version of the file's format
|
||||||
(as of 2005, either an ASCII NUL (\(aq\\0\(aq) or a \(aq2\(aq)
|
(as of 2005, either an ASCII NUL (\(aq\\0\(aq) or a \(aq2\(aq (\fB0x32\fP))
|
||||||
followed by fifteen bytes containing zeros reserved for future use,
|
followed by fifteen bytes containing zeros reserved for future use,
|
||||||
followed by six four-byte values of type
|
followed by six four-byte values of type
|
||||||
.IR long ,
|
.IR long ,
|
||||||
|
@ -144,16 +144,82 @@ if either
|
||||||
.I tzh_timecnt
|
.I tzh_timecnt
|
||||||
is zero or the time argument is less than the first transition time recorded
|
is zero or the time argument is less than the first transition time recorded
|
||||||
in the file.
|
in the file.
|
||||||
.PP
|
.SS Version 2 format
|
||||||
For version-2-format timezone files,
|
For version-2-format timezone files,
|
||||||
the above header and data is followed by a second header and data,
|
the above header and data is followed by a second header and data,
|
||||||
identical in format except that
|
identical in format except that
|
||||||
eight bytes are used for each transition time or leap-second time.
|
eight bytes are used for each transition time or leap-second time
|
||||||
|
(and that the version byte in the header record is
|
||||||
|
\fB0x32\fP rather than \fB0x00\fP).
|
||||||
After the second header and data comes a newline-enclosed,
|
After the second header and data comes a newline-enclosed,
|
||||||
POSIX-TZ-environment-variable-style string for use in handling instants
|
POSIX-TZ-environment-variable-style string for use in handling instants
|
||||||
after the last transition time stored in the file
|
after the last transition time stored in the file
|
||||||
(with nothing between the newlines if there is no POSIX representation for
|
(with nothing between the newlines if there is no POSIX representation for
|
||||||
such instants).
|
such instants).
|
||||||
|
.PP
|
||||||
|
The second section of the timezone file consists of another 44-byte header
|
||||||
|
record, identical in structure to the one at the beginning of the file,
|
||||||
|
except that it applies to the data that follows,
|
||||||
|
which is also identical in structure
|
||||||
|
to the first section of the timezone file, with the following differences:
|
||||||
|
.IP * 3
|
||||||
|
The transition time values, after the header, are eight-byte values.
|
||||||
|
.IP *
|
||||||
|
In each leap second record, the leap second value is an eight-byte value.
|
||||||
|
The accumulated leap second count is still a four-byte value.
|
||||||
|
.PP
|
||||||
|
In all cases, the eight-byte time values are given in
|
||||||
|
the "standard" byte order,
|
||||||
|
the high-order byte first.
|
||||||
|
.SS POSIX timezone string
|
||||||
|
The second eight-byte time value section is followed by an optional
|
||||||
|
third section:
|
||||||
|
a single ASCII newline character (\(aq\\n\(aq),
|
||||||
|
then a text string followed by a second
|
||||||
|
newline character.
|
||||||
|
The text string is a POSIX timezone string, whose format is described in the
|
||||||
|
.BR tzset (3)
|
||||||
|
manual page.
|
||||||
|
.PP
|
||||||
|
The POSIX timezone string defines a rule for computing transition times
|
||||||
|
that follow the last transition time explicitly specified in the timezone
|
||||||
|
information file.
|
||||||
|
.SS Summary of the timezone information file format
|
||||||
|
\&
|
||||||
|
.sp 2
|
||||||
|
.RS
|
||||||
|
.nf
|
||||||
|
Four-byte value section
|
||||||
|
(header version \fB0x00\fP or \fB0x32\fP)
|
||||||
|
Header record
|
||||||
|
Four-byte transition times
|
||||||
|
Transition time index
|
||||||
|
\fBttinfo\fP structures
|
||||||
|
Timezone abbreviation array
|
||||||
|
Leap second records
|
||||||
|
Standard/Wall array
|
||||||
|
UTC/Local array
|
||||||
|
|
||||||
|
Eight-byte value section
|
||||||
|
(only if first header version is \fB0x32\fP,
|
||||||
|
the second header's version is also \fB0x32\fP)
|
||||||
|
Header record
|
||||||
|
Eight-byte transition times
|
||||||
|
Transition time index
|
||||||
|
\fBttinfo\fP structures
|
||||||
|
Timezone abbreviation array
|
||||||
|
Leap second records
|
||||||
|
Standard/Wall array
|
||||||
|
UTC/Local array
|
||||||
|
|
||||||
|
Third section
|
||||||
|
(optional, only in \fB0x32\fP version files)
|
||||||
|
Newline character
|
||||||
|
Timezone string
|
||||||
|
Newline character
|
||||||
|
.fi
|
||||||
|
.RE
|
||||||
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.BR ctime (3),
|
.BR ctime (3),
|
||||||
.BR tzset (3),
|
.BR tzset (3),
|
||||||
|
|
Loading…
Reference in New Issue