tzfile.5 revision 35922
1.Dd September 13, 1994 2.Dt TZFILE 5 3.Os FreeBSD 2.0 4.Sh NAME 5.Nm tzfile 6.Nd timezone information 7.Sh SYNOPSIS 8.Fd #include <tzfile.h> 9.Sh DESCRIPTION 10The time zone information files used by 11.Xr tzset 3 12begin with bytes reserved for future use, 13followed by four four-byte values 14written in a ``standard'' byte order 15(the high-order byte of the value is written first). 16These values are, 17in order: 18.Pp 19.Bl -tag -compact -width tzh_ttisstdcnt 20.It Li tzh_ttisstdcnt 21The number of standard/wall indicators stored in the file. 22.It Li tzh_leapcnt 23The number of leap seconds for which data is stored in the file. 24.It Li tzh_timecnt 25The number of ``transition times'' for which data is stored 26in the file. 27.It Li tzh_typecnt 28The number of ``local time types'' for which data is stored 29in the file (must not be zero). 30.It Li tzh_charcnt 31The number of characters of ``time zone abbreviation strings'' 32stored in the file. 33.El 34.Pp 35The above header is followed by 36.Li tzh_timecnt 37four-byte values of type 38.Fa long , 39sorted in ascending order. 40These values are written in ``standard'' byte order. 41Each is used as a transition time (as returned by 42.Xr time 3 ) 43at which the rules for computing local time change. 44Next come 45.Li tzh_timecnt 46one-byte values of type 47.Fa "unsigned char" ; 48each one tells which of the different types of ``local time'' types 49described in the file is associated with the same-indexed transition time. 50These values serve as indices into an array of 51.Fa ttinfo 52structures that appears next in the file; 53these structures are defined as follows: 54.Pp 55.Bd -literal -offset indent 56struct ttinfo { 57 long tt_gmtoff; 58 int tt_isdst; 59 unsigned int tt_abbrind; 60}; 61.Ed 62.Pp 63Each structure is written as a four-byte value for 64.Li tt_gmtoff 65of type 66.Fa long , 67in a standard byte order, followed by a one-byte value for 68.Li tt_isdst 69and a one-byte value for 70.Li tt_abbrind . 71In each structure, 72.Li tt_gmtoff 73gives the number of seconds to be added to GMT, 74.Li tt_isdst 75tells whether 76.Li tm_isdst 77should be set by 78.Xr localtime 3 79and 80.Li tt_abbrind 81serves as an index into the array of time zone abbreviation characters 82that follow the 83.Li ttinfo 84structure(s) in the file. 85.Pp 86Then there are 87.Li tzh_leapcnt 88pairs of four-byte values, written in standard byte order; 89the first value of each pair gives the time 90(as returned by 91.Xr time 3 ) 92at which a leap second occurs; 93the second gives the 94.Em total 95number of leap seconds to be applied after the given time. 96The pairs of values are sorted in ascending order by time. 97.Pp 98Finally there are 99.Li tzh_ttisstdcnt 100standard/wall indicators, each stored as a one-byte value; 101they tell whether the transition times associated with local time types 102were specified as standard time or wall clock time, 103and are used when a time zone file is used in handling POSIX-style 104time zone environment variables. 105.Pp 106.Nm localtime 107uses the first standard-time 108.Li ttinfo 109structure in the file 110(or simply the first 111.Li ttinfo 112structure in the absence of a standard-time structure) 113if either 114.Li tzh_timecnt 115is zero or the time argument is less than the first transition time recorded 116in the file. 117.Sh SEE ALSO 118.Xr ctime 3 , 119.Xr time2posix 3 , 120.Xr zic 8 121.\" @(#)tzfile.5 7.2 122