]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libc/gen/tzset.3
bsddialog: import version 1.0
[FreeBSD/FreeBSD.git] / lib / libc / gen / tzset.3
1 .\" Copyright (c) 1989, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" This code is derived from software contributed to Berkeley by
5 .\" Arthur Olson.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\"    notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\"    notice, this list of conditions and the following disclaimer in the
14 .\"    documentation and/or other materials provided with the distribution.
15 .\" 3. Neither the name of the University nor the names of its contributors
16 .\"    may be used to endorse or promote products derived from this software
17 .\"    without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .\"     @(#)tzset.3     8.2 (Berkeley) 11/17/93
32 .\"
33 .Dd March 6, 2023
34 .Dt TZSET 3
35 .Os
36 .Sh NAME
37 .Nm tzset
38 .Nd initialize time conversion information
39 .Sh LIBRARY
40 .Lb libc
41 .Sh SYNOPSIS
42 .In time.h
43 .Ft void
44 .Fn tzset void
45 .Sh DESCRIPTION
46 The
47 .Fn tzset
48 function
49 initializes time conversion information used by the library routine
50 .Xr localtime 3 .
51 The environment variable
52 .Ev TZ
53 specifies how this is done.
54 .Pp
55 If
56 .Ev TZ
57 does not appear in the environment, the best available approximation to
58 local wall clock time, as specified by the
59 .Xr tzfile 5 Ns -format
60 file
61 .Pa /etc/localtime
62 is used.
63 .Pp
64 If
65 .Ev TZ
66 appears in the environment but its value is a null string, Coordinated
67 Universal Time
68 .Pq Tn UTC
69 is used (without leap second correction).
70 .Pp
71 If
72 .Ev TZ
73 appears in the environment and its value begins with a colon
74 .Pq Ql \&: ,
75 the rest of its value is used as a pathname of a
76 .Xr tzfile 5 Ns -format
77 file from which to read the time conversion information.
78 If the first character of the pathname is a slash
79 .Pq Ql /
80 it is used as
81 an absolute pathname; otherwise, it is used as a pathname relative to
82 the system time conversion information directory.
83 .Pp
84 If its value does not begin with a colon, it is first used as the pathname
85 of a file (as described above) from which to read the time conversion
86 information.
87 If that file cannot be read, the value is then interpreted as a direct
88 specification (the format is described below) of the time conversion
89 information.
90 .Pp
91 If the
92 .Ev TZ
93 environment variable does not specify a
94 .Xr tzfile 5 Ns -format
95 file and cannot be interpreted as a direct specification,
96 .Tn UTC
97 is used.
98 .Sh SPECIFICATION FORMAT
99 When
100 .Ev TZ
101 is used directly as a specification of the time conversion information,
102 it must have the following syntax (spaces inserted for clarity):
103 .Bd -ragged -offset indent
104 .Em std offset
105 .Bo
106 .Em dst
107 .Bq Em offset
108 .Bq , Em rule
109 .Bc
110 .Ed
111 .Pp
112 Where:
113 .Bl -tag -width std_and_dst -offset indent
114 .It Em std No and Em dst
115 Three or more bytes that are the designation for the standard
116 .Pq Em std
117 or summer
118 .Pq Em dst
119 time zone.
120 Only
121 .Em std
122 is required; if
123 .Em dst
124 is missing, then summer time does not apply in this locale.
125 Upper and lowercase letters are explicitly allowed.
126 Any characters
127 except a leading colon
128 .Pq Ql \&: ,
129 digits, comma
130 .Pq Ql \&, ,
131 minus
132 .Pq Ql \- ,
133 plus
134 .Pq Ql + ,
135 and
136 .Tn ASCII
137 .Dv NUL
138 are allowed.
139 .It Em offset
140 Indicates the value one must add to the local time to arrive at
141 Coordinated Universal Time.
142 The
143 .Em offset
144 has the form:
145 .Bd -ragged -offset indent
146 .Sm off
147 .Em hh Bo
148 .Em : mm
149 .Bq Em : ss
150 .Bc
151 .Sm on
152 .Ed
153 .Pp
154 The minutes
155 .Pq Em mm
156 and seconds
157 .Pq Em ss
158 are optional.
159 The hour
160 .Pq Em hh
161 is required and may be a single digit.
162 The
163 .Em offset
164 following
165 .Em std
166 is required.
167 If no
168 .Em offset
169 follows
170 .Em dst ,
171 summer time is assumed to be one hour ahead of standard time.
172 One or
173 more digits may be used; the value is always interpreted as a decimal
174 number.
175 The hour must be between zero and 24, and the minutes (and
176 seconds) \(em if present \(em between zero and 59.
177 If preceded by a
178 .Pq Ql \-
179 the time zone shall be east of the Prime Meridian; otherwise it shall be
180 west (which may be indicated by an optional preceding
181 .Pq Ql + ) .
182 .It Em rule
183 Indicates when to change to and back from summer time.
184 The
185 .Em rule
186 has the form:
187 .Bd -ragged -offset indent
188 .Em date/time,date/time
189 .Ed
190 .Pp
191 where the first
192 .Em date
193 describes when the change from standard to summer time occurs and the
194 second
195 .Em date
196 describes when the change back happens.
197 Each
198 .Em time
199 field describes when, in current local time, the change to the other
200 time is made.
201 .Pp
202 The format of
203 .Em date
204 is one of the following:
205 .Bl -tag -width "M.m.n.d"
206 .It Sy J Em n
207 The Julian day
208 .Em n
209 (1 \*(Le
210 .Em n
211 \*(Le 365).
212 Leap days are not counted; that is, in all years \(em including leap
213 years \(em February 28 is day 59 and March 1 is day 60.
214 It is
215 impossible to explicitly refer to the occasional February 29.
216 .It Em n
217 The zero-based Julian day
218 (0 \*(Le
219 .Em n
220 \*(Le 365 ) .
221 Leap days are counted, and it is possible to refer to February 29.
222 .It Sy M Em m.n.d
223 The
224 .Em d Ns 'th
225 day (0 \*(Le
226 .Em d
227 \*(Le 6)
228 of week
229 .Em n
230 of month
231 .Em m
232 of the year
233 (1 \*(Le
234 .Em n
235 \*(Le 5),
236 (1 \*(Le
237 .Em m
238 \*(Le 12),
239 where week 5 means
240 .Do
241 the last
242 .Em d
243 day in month
244 .Em m
245 .Dc
246 which may occur in either the fourth or the fifth week).
247 Week 1 is the
248 first week in which the
249 .Em d Ns 'th
250 day occurs.
251 Day zero is Sunday.
252 .Pp
253 The
254 .Em time
255 has the same format as
256 .Em offset
257 except that no leading sign
258 .Pq Ql \-
259 or
260 .Pq Ql +
261 is allowed.
262 The default, if
263 .Em time
264 is not given, is
265 .Sy 02:00:00 .
266 .El
267 .Pp
268 If no
269 .Em rule
270 is present in the
271 .Ev TZ
272 specification, the rules specified
273 by the
274 .Xr tzfile 5 Ns -format
275 file
276 .Em posixrules
277 in the system time conversion information directory are used, with the
278 standard and summer time offsets from
279 .Tn UTC
280 replaced by those specified by
281 the
282 .Em offset
283 values in
284 .Ev TZ .
285 .El
286 .Pp
287 For compatibility with System V Release 3.1, a semicolon
288 .Pq Ql \&;
289 may be used to separate the
290 .Em rule
291 from the rest of the specification.
292 .Sh FILES
293 .Bl -tag -width /usr/share/zoneinfo/posixrules -compact
294 .It Pa /etc/localtime
295 local time zone file
296 .It Pa /usr/share/zoneinfo
297 time zone directory
298 .It Pa /usr/share/zoneinfo/posixrules
299 rules for
300 .Tn POSIX Ns -style
301 .Tn TZ Ns 's
302 .It Pa /usr/share/zoneinfo/Etc/GMT
303 for
304 .Tn UTC
305 leap seconds
306 .El
307 .Pp
308 If the file
309 .Pa /usr/share/zoneinfo/UTC
310 does not exist,
311 .Tn UTC
312 leap seconds are loaded from
313 .Pa /usr/share/zoneinfo/posixrules .
314 .Sh SEE ALSO
315 .Xr date 1 ,
316 .Xr gettimeofday 2 ,
317 .Xr ctime 3 ,
318 .Xr getenv 3 ,
319 .Xr time 3 ,
320 .Xr tzfile 5
321 .Sh HISTORY
322 The
323 .Fn tzset
324 function first appeared in
325 .Bx 4.4 .