]>
Commit | Line | Data |
---|---|---|
b061a43b | 1 | .\" $FreeBSD: head/contrib/tzcode/stdtime/tzfile.5 259446 2013-12-16 01:58:12Z bjk $ |
5b2abdfb A |
2 | .Dd September 13, 1994 |
3 | .Dt TZFILE 5 | |
4 | .Os | |
5 | .Sh NAME | |
6 | .Nm tzfile | |
7 | .Nd timezone information | |
8 | .Sh SYNOPSIS | |
ad3c9f2a | 9 | .In tzfile.h |
5b2abdfb A |
10 | .Sh DESCRIPTION |
11 | The time zone information files used by | |
12 | .Xr tzset 3 | |
13 | begin with the magic characters | |
14 | .Dq Li TZif | |
15 | to identify them as | |
16 | time zone information files, | |
b061a43b A |
17 | followed by a character identifying the version of the file's format |
18 | (as of 2005, either an ASCII NUL or a '2') | |
19 | followed by fifteen bytes containing zeroes reserved for future use, | |
5b2abdfb A |
20 | followed by four four-byte values |
21 | written in a ``standard'' byte order | |
22 | (the high-order byte of the value is written first). | |
23 | These values are, | |
24 | in order: | |
25 | .Pp | |
26 | .Bl -tag -compact -width tzh_ttisstdcnt | |
27 | .It Va tzh_ttisgmtcnt | |
28 | The number of UTC/local indicators stored in the file. | |
29 | .It Va tzh_ttisstdcnt | |
30 | The number of standard/wall indicators stored in the file. | |
31 | .It Va tzh_leapcnt | |
32 | The number of leap seconds for which data is stored in the file. | |
33 | .It Va tzh_timecnt | |
34 | The number of ``transition times'' for which data is stored | |
35 | in the file. | |
36 | .It Va tzh_typecnt | |
37 | The number of ``local time types'' for which data is stored | |
38 | in the file (must not be zero). | |
39 | .It Va tzh_charcnt | |
40 | The number of characters of ``time zone abbreviation strings'' | |
41 | stored in the file. | |
42 | .El | |
43 | .Pp | |
44 | The above header is followed by | |
45 | .Va tzh_timecnt | |
46 | four-byte values of type | |
47 | .Fa long , | |
48 | sorted in ascending order. | |
49 | These values are written in ``standard'' byte order. | |
50 | Each is used as a transition time (as returned by | |
51 | .Xr time 3 ) | |
52 | at which the rules for computing local time change. | |
53 | Next come | |
54 | .Va tzh_timecnt | |
55 | one-byte values of type | |
56 | .Fa "unsigned char" ; | |
57 | each one tells which of the different types of ``local time'' types | |
58 | described in the file is associated with the same-indexed transition time. | |
59 | These values serve as indices into an array of | |
60 | .Fa ttinfo | |
b061a43b A |
61 | structures (with |
62 | .Fa tzh_typecnt | |
63 | entries) that appears next in the file; | |
5b2abdfb A |
64 | these structures are defined as follows: |
65 | .Pp | |
66 | .Bd -literal -offset indent | |
67 | struct ttinfo { | |
68 | long tt_gmtoff; | |
69 | int tt_isdst; | |
70 | unsigned int tt_abbrind; | |
71 | }; | |
72 | .Ed | |
73 | .Pp | |
74 | Each structure is written as a four-byte value for | |
75 | .Va tt_gmtoff | |
76 | of type | |
77 | .Fa long , | |
78 | in a standard byte order, followed by a one-byte value for | |
79 | .Va tt_isdst | |
80 | and a one-byte value for | |
81 | .Va tt_abbrind . | |
82 | In each structure, | |
83 | .Va tt_gmtoff | |
84 | gives the number of seconds to be added to UTC, | |
85 | .Li tt_isdst | |
86 | tells whether | |
87 | .Li tm_isdst | |
88 | should be set by | |
89 | .Xr localtime 3 | |
90 | and | |
91 | .Va tt_abbrind | |
92 | serves as an index into the array of time zone abbreviation characters | |
93 | that follow the | |
94 | .Li ttinfo | |
95 | structure(s) in the file. | |
96 | .Pp | |
97 | Then there are | |
98 | .Va tzh_leapcnt | |
99 | pairs of four-byte values, written in standard byte order; | |
100 | the first value of each pair gives the time | |
101 | (as returned by | |
102 | .Xr time 3 ) | |
103 | at which a leap second occurs; | |
104 | the second gives the | |
105 | .Em total | |
106 | number of leap seconds to be applied after the given time. | |
107 | The pairs of values are sorted in ascending order by time. | |
108 | .Pp | |
109 | Then there are | |
110 | .Va tzh_ttisstdcnt | |
111 | standard/wall indicators, each stored as a one-byte value; | |
112 | they tell whether the transition times associated with local time types | |
113 | were specified as standard time or wall clock time, | |
114 | and are used when a time zone file is used in handling POSIX-style | |
115 | time zone environment variables. | |
116 | .Pp | |
117 | Finally there are | |
118 | .Va tzh_ttisgmtcnt | |
119 | UTC/local indicators, each stored as a one-byte value; | |
120 | they tell whether the transition times associated with local time types | |
121 | were specified as UTC or local time, | |
122 | and are used when a time zone file is used in handling POSIX-style | |
123 | time zone environment variables. | |
124 | .Pp | |
125 | .Nm localtime | |
126 | uses the first standard-time | |
127 | .Li ttinfo | |
128 | structure in the file | |
129 | (or simply the first | |
130 | .Li ttinfo | |
131 | structure in the absence of a standard-time structure) | |
132 | if either | |
133 | .Li tzh_timecnt | |
134 | is zero or the time argument is less than the first transition time recorded | |
135 | in the file. | |
b061a43b A |
136 | .Pp |
137 | For version-2-format time zone files, | |
138 | the above header and data is followed by a second header and data, | |
139 | identical in format except that eight bytes are used for each | |
140 | transition time or leap second time. | |
141 | After the second header and data comes a newline-enclosed, | |
142 | POSIX-TZ-environment-variable-style string for use in handling instants | |
143 | after the last transition time stored in the file | |
144 | (with nothing between the newlines if there is no POSIX representation for | |
145 | such instants). | |
5b2abdfb A |
146 | .Sh SEE ALSO |
147 | .Xr ctime 3 , | |
148 | .Xr time2posix 3 , | |
149 | .Xr zic 8 | |
b061a43b | 150 | .\" @(#)tzfile.5 8.3 |
5b2abdfb | 151 | .\" This file is in the public domain, so clarified as of |
b061a43b | 152 | .\" 1996-06-05 by Arthur David Olson. |