Sync usage with man page.
[netbsd-mini2440.git] / lib / libc / time / tzset.3
blob53d286f9eab1a4d73e9adf77855023d6ada74f76
1 .\"     $NetBSD: tzset.3,v 1.23 2009/03/10 23:25:32 joerg Exp $
2 .Dd April 1, 2001
3 .Dt TZSET 3
4 .Os
5 .Sh NAME
6 .Nm tzset
7 .Nd initialize time conversion information
8 .Sh LIBRARY
9 .Lb libc
10 .Sh SYNOPSIS
11 .In time.h
12 .Ft void
13 .Fn tzset "void"
14 .Sh DESCRIPTION
15 The
16 .Fn tzset
17 function uses the value of the environment variable
18 .Ev TZ
19 to set time conversion information used by
20 .Xr localtime 3 .
22 .Ev TZ
23 does not appear in the environment,
24 the best available approximation to local wall clock time, as
25 specified by the
26 .Xr tzfile 5
27 format file
28 .Pa /etc/localtime
29 is used by
30 .Xr localtime 3 .
32 .Ev TZ
33 appears in the environment but its value is a null string,
34 Coordinated Universal Time (UTC) is used (without leap second
35 correction).
37 .Ev TZ
38 appears in the environment and its value is not a null string:
39 .Bl -dash
40 .It
41 if the value begins with a colon, it is used as a pathname of a file
42 from which to read the time conversion information;
43 .It
44 if the value does not begin with a colon, it is first used as the
45 pathname of a file from which to read the time conversion information,
46 and, if that file cannot be read, is used directly as a specification
47 of the time conversion information.
48 .El
49 .Pp
50 When
51 .Ev TZ
52 is used as a pathname, if it begins with a slash, it is used as an
53 absolute pathname; otherwise, it is used as a pathname relative to
54 .Pa /usr/share/zoneinfo .
55 The file must be in the format specified in
56 .Xr tzfile 5 .
57 .Pp
58 When
59 .Ev TZ
60 is used directly as a specification of the time conversion information,
61 it must have the following syntax (spaces inserted for clarity):
62 .Sm off
63 .Bd -literal -offset indent
64 .Cm std Cm offset Oo
65 .Cm dst Oo
66 .Cm offset Oc Oo
67 .No , Cm rule Oc Oc
68 .Ed
69 .Sm on
70 .Pp
71 where:
72 .Bl -tag -width "std and dst" -compact
73 .It Cm std No and Cm dst
74 Three or more bytes that are the designation for the standard
75 .Cm ( std )
76 or summer
77 .Cm ( dst )
78 time zone.
79 Only
80 .Cm std
81 is required; if
82 .Cm dst
83 is missing, then summer time does not apply in this locale.
84 Upper- and lowercase letters are explicitly allowed.
85 Any characters except a leading colon (:), digits, comma (,), minus (-),
86 plus (+), and ASCII NUL are allowed.
87 .It Cm offset
88 Indicates the value one must add to the local time to arrive at
89 Coordinated Universal Time.
90 The
91 .Cm offset
92 has the form:
93 .Sm off
94 .Bd -literal -offset indent
95 .Cm hh Oo
96 .Cm :mm Oo
97 .Cm :ss Oc Oc
98 .Ed
99 .Sm on
101 The minutes
102 .Cm ( mm )
103 and seconds
104 .Cm ( ss )
105 are optional.
106 The hour
107 .Cm ( hh )
108 is required and may be a single digit.
110 .Cm offset
111 following
112 .Cm std
113 is required.
114 If no
115 .Cm offset
116 follows
117 .Cm dst ,
118 summer time is assumed to be one hour ahead of standard time.
119 One or more digits may be used; the value is always interpreted as a
120 decimal number.
121 The hour must be between zero and 24, and the minutes (and
122 seconds) \(em if present \(em between zero and 59.
123 If preceded by a
124 .Dq -
125 the time zone shall be east of the Prime Meridian; otherwise it shall be
126 west (which may be indicated by an optional preceding
127 .Dq + ) .
128 .It Cm rule
129 Indicates when to change to and back from summer time.
131 .Cm rule
132 has the form:
133 .Sm off
134 .Bd -literal -offset indent
136 .Cm date No /
137 .Cm time No ,
138 .Cm date No /
139 .Cm time
142 .Sm on
144 where the first
145 .Cm date
146 describes when the change from standard to summer time occurs and the
147 second
148 .Cm date
149 describes when the change back happens.
150 Each
151 .Cm time
152 field describes when, in current local time, the change to the other
153 time is made.
154 The format of
155 .Fa date
156 is one of the following:
157 .Bl -tag -width "The Julian day" -compact
158 .It Cm J Ns Ar n
159 The Julian day
160 .Ar n
161 (1 \*[Le]
162 .Ar n
163 \*[Le] 365).
164 Leap days are not counted; that is, in all years \(em including leap
165 years \(em February 28 is day 59 and March 1 is day 60.
166 It is impossible to explicitly refer to the occasional February 29.
167 .It Ar n
168 The zero-based Julian day (0\ \*[Le]
169 .Ar n
170 \*[Le]\ 365).
171 Leap days are counted, and it is possible to refer to
172 February 29.
173 .Sm off
174 .It Cm M Ns Ar m No . Ar n No . Ar d
175 .Sm on
177 .Ar d Ns 'th
179 (0 \*[Le]
180 .Ar d
181 \*[Le]\ 6) of week
182 .Ar n
183 of month
184 .Ar m
185 of the year
186 (1 \*[Le]
187 .Ar n
188 \*[Le]\ 5, 1 \*[Le]
189 .Ar m
190 \*[Le]\ 12, where week 5 means
191 .Dq the\ last Ar d No day\ in\ month Ar m
192 which may occur in either the fourth or the fifth week).
193 Week 1 is the first week in which the
194 .Ar d Ns 'th
195 day occurs.
196 Day zero is Sunday.
199 .Cm time
200 has the same format as
201 .Cm offset
202 except that no leading sign
203 .Dq -
205 .Dq +
206 is allowed.
207 The default, if
208 .Cm time
209 is not given, is
210 .Cm 02:00:00 .
212 If no
213 .Cm rule
214 is present in
215 .Ev TZ ,
216 the rules specified by the
217 .Xr tzfile 5
218 format file
219 .Pa posixrules
221 .Pa /usr/share/zoneinfo
222 are used, with the standard and summer time offsets from UTC replaced
223 by those specified by the
224 .Cm offset
225 values in
226 .Ev TZ .
228 For compatibility with System V Release 3.1, a semicolon (;) may be
229 used to separate the
230 .Cm rule
231 from the rest of the specification.
233 If the
234 .Ev TZ
235 environment variable does not specify a
236 .Xr tzfile 5
237 format file and cannot be interpreted as a direct specification, UTC
238 is used.
239 .Sh FILES
240 .Bl -tag -width /usr/share/zoneinfo/posixrules -compact
241 .It Pa /etc/localtime
242 local time zone file
243 .It Pa /usr/share/zoneinfo
244 time zone information directory
245 .It Pa /usr/share/zoneinfo/posixrules
246 used with POSIX-style TZ's
247 .It Pa /usr/share/zoneinfo/GMT
248 for UTC leap seconds
252 .Pa /usr/share/zoneinfo/GMT
253 is absent, UTC leap seconds are loaded from
254 .Pa /usr/share/zoneinfo/posixrules .
255 .Sh SEE ALSO
256 .Xr ctime 3 ,
257 .Xr getenv 3 ,
258 .Xr strftime 3 ,
259 .Xr time 3 ,
260 .Xr tzfile 5
261 .Sh STANDARDS
263 tzset()
264 function conforms to
265 .St -p1003.1-88 .
266 .\" @(#)newtzset.3      8.2
267 .\" This file is in the public domain, so clarified as of
268 .\" 2009-05-17 by Arthur David Olson.