Home | History | Annotate | Line # | Download | only in time
tzfile.5 revision 1.12
 $NetBSD: tzfile.5,v 1.12 2003/04/16 13:34:58 wiz Exp $

@(#)tzfile.5 7.11
This file is in the public domain, so clarified as of
1996-06-05 by Arthur David Olson (arthur_david_olson (at] nih.gov).
.Dd September 16, 2001 .Os .Dt TZFILE 5 .Sh NAME .Nm tzfile .Nd time zone information .Sh SYNOPSIS n tzfile.h .Sh DESCRIPTION The time zone information files used by .Xr tzset 3 begin with the magic characters .Dq TZif to identify them as time zone information files, followed by sixteen bytes reserved for future use, followed by six four-byte values of type .Fa long , written in a .Dq standard byte order (the high-order byte of the value is written first). These values are, in order: l -tag -width XXXXXX -compact t Va tzh_ttisgmtcnt The number of UTC/local indicators stored in the file. t Va tzh_ttisstdcnt The number of standard/wall indicators stored in the file. t Va tzh_leapcnt The number of leap seconds for which data is stored in the file. t Va tzh_timecnt The number of .Dq transition times for which data is stored in the file. t Va tzh_typecnt The number of .Dq local time types for which data is stored in the file (must not be zero). t Va tzh_charcnt The number of characters of "time zone abbreviation strings" stored in the file. .El

p The above header is followed by .Va tzh_timecnt four-byte values of type .Fa long , sorted in ascending order. These values are written in .Dq standard byte order. Each is used as a transition time (as returned by .Xr time 3 ) at which the rules for computing local time change. Next come .Va tzh_timecnt one-byte values of type .Fa unsigned char ; each one tells which of the different types of .Dq local time types described in the file is associated with the same-indexed transition time. These values serve as indices into an array of .Fa ttinfo structures that appears next in the file; these structures are defined as follows: d -literal struct ttinfo { long tt_gmtoff; int tt_isdst; unsigned int tt_abbrind; }; .Ed Each structure is written as a four-byte value for .Va tt_gmtoff of type .Fa long , in a standard byte order, followed by a one-byte value for .Va tt_isdst and a one-byte value for .Va tt_abbrind . In each structure, .Va tt_gmtoff gives the number of seconds to be added to UTC, .Va tt_isdst tells whether .Va tm_isdst should be set by .Xr localtime 3 and .Va tt_abbrind serves as an index into the array of time zone abbreviation characters that follow the .Va ttinfo structure(s) in the file.

p Then there are .Va tzh_leapcnt pairs of four-byte values, written in standard byte order; the first value of each pair gives the time (as returned by .Xr time 3 ) at which a leap second occurs; the second gives the .Em total number of leap seconds to be applied after the given time. The pairs of values are sorted in ascending order by time.

p Then there are .Va tzh_ttisstdcnt standard/wall indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as standard time or wall clock time, and are used when a time zone file is used in handling POSIX-style time zone environment variables.

p Finally there are .Va tzh_ttisgmtcnt UTC/local indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as UTC or local time, and are used when a time zone file is used in handling POSIX-style time zone environment variables.

p .Xr localtime 3 uses the first standard-time .Fa ttinfo structure in the file (or simply the first .Fa ttinfo structure in the absence of a standard-time structure) if either .Va tzh_timecnt is zero or the time argument is less than the first transition time recorded in the file. .Sh SEE ALSO .Xr ctime 3 , .Xr localtime 3 , .Xr time 3