]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/tzset.3
gettimeofday.2: Minor tweaks
[thirdparty/man-pages.git] / man3 / tzset.3
CommitLineData
fea681da
MK
1.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2.\"
93015253 3.\" %%%LICENSE_START(VERBATIM)
fea681da
MK
4.\" Permission is granted to make and distribute verbatim copies of this
5.\" manual provided the copyright notice and this permission notice are
6.\" preserved on all copies.
7.\"
8.\" Permission is granted to copy and distribute modified versions of this
9.\" manual under the conditions for verbatim copying, provided that the
10.\" entire resulting derived work is distributed under the terms of a
11.\" permission notice identical to this one.
c13182ef 12.\"
fea681da
MK
13.\" Since the Linux kernel and libraries are constantly changing, this
14.\" manual page may be incorrect or out-of-date. The author(s) assume no
15.\" responsibility for errors or omissions, or for damages resulting from
16.\" the use of the information contained herein. The author(s) may not
17.\" have taken the same level of care in the production of this manual,
18.\" which is licensed free of charge, as they might when working
19.\" professionally.
c13182ef 20.\"
fea681da
MK
21.\" Formatted or processed versions of this manual, if unaccompanied by
22.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 23.\" %%%LICENSE_END
fea681da
MK
24.\"
25.\" References consulted:
26.\" Linux libc source code
27.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
28.\" 386BSD man pages
29.\" Modified Sun Jul 25 11:01:58 1993 by Rik Faith (faith@cs.unc.edu)
30.\" Modified 2001-11-13, aeb
122dff10
MK
31.\" Modified 2004-12-01 mtk and Martin Schulze <joey@infodrom.org>
32.\"
460495ca 33.TH TZSET 3 2015-08-08 "" "Linux Programmer's Manual"
fea681da
MK
34.SH NAME
35tzset, tzname, timezone, daylight \- initialize time conversion information
36.SH SYNOPSIS
37.nf
38.B #include <time.h>
39.sp
40.B void tzset (void);
41.sp
42.BI "extern char *" tzname [2];
43.BI "extern long " timezone ;
44.BI "extern int " daylight ;
45.fi
cc4615cc
MK
46.sp
47.in -4n
48Feature Test Macro Requirements for glibc (see
49.BR feature_test_macros (7)):
50.in
51.sp
52.BR tzset ():
0f200f07 53_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
cc4615cc
MK
54.br
55.IR tzname :
0f200f07 56_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
cc4615cc
MK
57.br
58.IR timezone :
59_SVID_SOURCE || _XOPEN_SOURCE
60.br
61.IR daylight :
62_SVID_SOURCE || _XOPEN_SOURCE
fea681da 63.SH DESCRIPTION
60a90ecd
MK
64The
65.BR tzset ()
66function initializes the \fItzname\fP variable from the
097585ed
MK
67.B TZ
68environment variable.
c13182ef 69This function is automatically called by the
5b0dc1ba 70other time conversion functions that depend on the timezone.
464ba7fc 71In a System-V-like environment, it will also set the variables \fItimezone\fP
750d65df 72(seconds West of UTC) and \fIdaylight\fP (to 0 if this timezone does not
464ba7fc 73have any daylight saving time rules, or to nonzero if there is a time during
e2905dc1 74the year when daylight saving time applies).
fea681da 75.PP
097585ed
MK
76If the
77.B TZ
2c7f2006
J
78variable does not appear in the environment, the system timezone is used.
79The system timezone is configured by copying, or linking, a file in the
80.BR tzfile "(5) format to"
81.IR /etc/localtime .
82A timezone database of these files may be located in the system
83timezone directory (see the \fBFILES\fP section below).
fea681da 84.PP
097585ed
MK
85If the
86.B TZ
343d1314 87variable does appear in the environment, but its value is empty,
fea681da 88or its value cannot be interpreted using any of the formats specified
343d1314 89below, then Coordinated Universal Time (UTC) is used.
fea681da 90.PP
097585ed
MK
91The value of
92.B TZ
411dded2
WP
93can be one of two formats.
94The first format is a string of characters that directly represent the
95timezone to be used:
fea681da
MK
96.sp
97.RS
a288791d 98.IR "std offset" [ dst [ offset ][, start [ /time ], end [ /time ]]]
fea681da
MK
99.RE
100.sp
520d6ed0 101There are no spaces in the specification.
4faf9583 102The \fIstd\fP string specifies an abbreviation for the timezone and must be
c13182ef 103three or more alphabetic characters.
4faf9583
WP
104When enclosed between the less-than (<) and greater-than (>) signs, the
105characters set is expanded to include the plus (+) sign, the minus (-)
106sign, and digits.
c13182ef 107The \fIoffset\fP string immediately
fea681da 108follows \fIstd\fP and specifies the time value to be added to the local
c13182ef
MK
109time to get Coordinated Universal Time (UTC).
110The \fIoffset\fP is positive
5b0dc1ba 111if the local timezone is west of the Prime Meridian and negative if it is
c13182ef 112east.
036ea825
J
113The hour must be between 0 and 24, and the minutes and seconds 00 and 59:
114.sp
115.RS
116.RI [ + | - ] hh [ :mm [ :ss ]]
117.RE
118.sp
fea681da 119.PP
c13182ef 120The \fIdst\fP string and \fIoffset\fP specify the name and offset for the
5b0dc1ba 121corresponding daylight saving timezone.
c13182ef 122If the offset is omitted,
343d1314 123it defaults to one hour ahead of standard time.
fea681da 124.PP
e2905dc1 125The \fIstart\fP field specifies when daylight saving time goes into
fea681da 126effect and the \fIend\fP field specifies when the change is made back to
c13182ef
MK
127standard time.
128These fields may have the following formats:
fea681da
MK
129.TP
130J\fIn\fP
c13182ef 131This specifies the Julian day with \fIn\fP between 1 and 365.
567e764a
MK
132Leap days are not counted.
133In this format, February 29 can't be represented;
134February 28 is day 59, and March 1 is always day 60.
c13182ef 135.TP
fea681da 136.I n
567e764a 137This specifies the zero-based Julian day with \fIn\fP between 0 and 365.
c13182ef
MK
138February 29 is counted in leap years.
139.TP
fea681da 140M\fIm\fP.\fIw\fP.\fId\fP
c13182ef
MK
141This specifies day \fId\fP (0 <= \fId\fP <= 6) of week \fIw\fP
142(1 <= \fIw\fP <= 5) of month \fIm\fP (1 <= \fIm\fP <= 12).
143Week 1 is
144the first week in which day \fId\fP occurs and week 5 is the last week
145in which day \fId\fP occurs.
146Day 0 is a Sunday.
fea681da
MK
147.PP
148The \fItime\fP fields specify when, in the local time currently in effect,
c13182ef
MK
149the change to the other time occurs.
150If omitted, the default is 02:00:00.
e2905dc1 151
c13182ef
MK
152Here is an example for New Zealand,
153where the standard time (NZST) is 12 hours ahead of UTC,
154and daylight saving time (NZDT), 13 hours ahead of UTC,
e2905dc1
MK
155runs from the first Sunday in October to the third Sunday in March,
156and the changeovers happen at the default time of 02:00:00:
157.nf
158
4b9999d6 159 TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
e2905dc1 160.fi
fea681da 161.PP
411dded2 162The second format specifies that the timezone information should be read
fea681da
MK
163from a file:
164.sp
165.RS
166:[filespec]
167.RE
168.sp
4e00a0b8
J
169If the file specification \fIfilespec\fP is omitted, or its value cannot
170be interpreted, then Coordinated Universal Time (UTC) is used.
c13182ef 171If \fIfilespec\fP is given, it specifies another
fea681da 172.BR tzfile (5)-format
5b0dc1ba 173file to read the timezone information from.
f81fb444 174If \fIfilespec\fP does not begin with a \(aq/\(aq, the file specification is
f2671085
MK
175relative to the system timezone directory.
176If the colon is omitted each
411dded2 177of the above \fBTZ\fP formats will be tried.
e2905dc1
MK
178.PP
179Here's an example, once more for New Zealand:
180.nf
181
182 TZ=":Pacific/Auckland"
183.fi
c1e90e15
WP
184.SH ENVIRONMENT
185.TP
186.B TZ
187If this variable is set its value takes precedence over the system
188configured timezone.
189.TP
190.B TZDIR
191If this variable is set its value takes precedence over the system
192configured timezone database directory path.
fea681da 193.SH FILES
c1e90e15 194.TP
feb9265d 195.I /etc/localtime
c1e90e15
WP
196The system timezone file.
197.TP
feb9265d 198.I /usr/share/zoneinfo/
c1e90e15
WP
199The system timezone database directory.
200.TP
feb9265d 201.I /usr/share/zoneinfo/posixrules
1cec674c
WP
202When a TZ string includes a dst timezone without anything following it,
203then this file is used for the start/end rules.
204It is in the
205.BR tzfile "(5) format."
206By default, the zoneinfo Makefile hard links it to the
207.IR America/New_York " tzfile."
c1e90e15
WP
208.PP
209Above are the current standard file locations, but they are
210configurable when glibc is compiled.
1a14cdb6
PH
211.SH ATTRIBUTES
212For an explanation of the terms used in this section, see
213.BR attributes (7).
214.TS
215allbox;
216lb lb lb
217l l l.
218Interface Attribute Value
219T{
220.BR tzset ()
221T} Thread safety MT-Safe env locale
222.TE
47297adb 223.SH CONFORMING TO
595652e0 224POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
fea681da
MK
225.SH NOTES
226Note that the variable \fIdaylight\fP does not indicate that daylight
c13182ef
MK
227saving time applies right now.
228It used to give the number of some
fea681da
MK
229algorithm (see the variable \fItz_dsttime\fP in
230.BR gettimeofday (2)).
231It has been obsolete for many years but is required by SUSv2.
232.LP
122dff10
MK
2334.3BSD had a function
234.BI "char *timezone(" zone ", " dst )
235that returned the
5b0dc1ba 236name of the timezone corresponding to its first argument (minutes
750d65df 237West of UTC).
c13182ef 238If the second argument was 0, the standard name was used,
e2905dc1 239otherwise the daylight saving time version.
47297adb 240.SH SEE ALSO
fea681da
MK
241.BR date (1),
242.BR gettimeofday (2),
243.BR time (2),
244.BR ctime (3),
245.BR getenv (3),
246.BR tzfile (5)