]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/tzset.3
fanotify_init.2: ffix
[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.\"
97986708 33.TH TZSET 3 2016-03-15 "" "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 ():
cff459de 53_POSIX_C_SOURCE
cc4615cc
MK
54.br
55.IR tzname :
cff459de 56_POSIX_C_SOURCE
cc4615cc 57.br
d59161f9 58.IR timezone ,
cc4615cc 59.IR daylight :
d59161f9
MK
60_XOPEN_SOURCE
61 || /* Glibc since 2.19: */ _DEFAULT_SOURCE
62 || /* Glibc versions <= 2.19: */ _SVID_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
17e9724a
CD
73have any daylight saving time rules, or to nonzero if there is a time,
74past, present or future 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
fea681da 118.PP
c13182ef 119The \fIdst\fP string and \fIoffset\fP specify the name and offset for the
5b0dc1ba 120corresponding daylight saving timezone.
c13182ef 121If the offset is omitted,
343d1314 122it defaults to one hour ahead of standard time.
fea681da 123.PP
e2905dc1 124The \fIstart\fP field specifies when daylight saving time goes into
fea681da 125effect and the \fIend\fP field specifies when the change is made back to
c13182ef
MK
126standard time.
127These fields may have the following formats:
fea681da
MK
128.TP
129J\fIn\fP
c13182ef 130This specifies the Julian day with \fIn\fP between 1 and 365.
567e764a
MK
131Leap days are not counted.
132In this format, February 29 can't be represented;
133February 28 is day 59, and March 1 is always day 60.
c13182ef 134.TP
fea681da 135.I n
567e764a 136This specifies the zero-based Julian day with \fIn\fP between 0 and 365.
c13182ef
MK
137February 29 is counted in leap years.
138.TP
fea681da 139M\fIm\fP.\fIw\fP.\fId\fP
c13182ef
MK
140This specifies day \fId\fP (0 <= \fId\fP <= 6) of week \fIw\fP
141(1 <= \fIw\fP <= 5) of month \fIm\fP (1 <= \fIm\fP <= 12).
142Week 1 is
143the first week in which day \fId\fP occurs and week 5 is the last week
144in which day \fId\fP occurs.
145Day 0 is a Sunday.
fea681da
MK
146.PP
147The \fItime\fP fields specify when, in the local time currently in effect,
c13182ef
MK
148the change to the other time occurs.
149If omitted, the default is 02:00:00.
e2905dc1 150
c13182ef
MK
151Here is an example for New Zealand,
152where the standard time (NZST) is 12 hours ahead of UTC,
153and daylight saving time (NZDT), 13 hours ahead of UTC,
e2905dc1
MK
154runs from the first Sunday in October to the third Sunday in March,
155and the changeovers happen at the default time of 02:00:00:
156.nf
157
4b9999d6 158 TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
e2905dc1 159.fi
fea681da 160.PP
411dded2 161The second format specifies that the timezone information should be read
fea681da
MK
162from a file:
163.sp
164.RS
165:[filespec]
166.RE
167.sp
4e00a0b8
J
168If the file specification \fIfilespec\fP is omitted, or its value cannot
169be interpreted, then Coordinated Universal Time (UTC) is used.
c13182ef 170If \fIfilespec\fP is given, it specifies another
fea681da 171.BR tzfile (5)-format
5b0dc1ba 172file to read the timezone information from.
f81fb444 173If \fIfilespec\fP does not begin with a \(aq/\(aq, the file specification is
f2671085
MK
174relative to the system timezone directory.
175If the colon is omitted each
411dded2 176of the above \fBTZ\fP formats will be tried.
e2905dc1
MK
177.PP
178Here's an example, once more for New Zealand:
179.nf
180
181 TZ=":Pacific/Auckland"
182.fi
c1e90e15
WP
183.SH ENVIRONMENT
184.TP
185.B TZ
186If this variable is set its value takes precedence over the system
187configured timezone.
188.TP
189.B TZDIR
190If this variable is set its value takes precedence over the system
191configured timezone database directory path.
fea681da 192.SH FILES
c1e90e15 193.TP
feb9265d 194.I /etc/localtime
c1e90e15
WP
195The system timezone file.
196.TP
feb9265d 197.I /usr/share/zoneinfo/
c1e90e15
WP
198The system timezone database directory.
199.TP
feb9265d 200.I /usr/share/zoneinfo/posixrules
1cec674c
WP
201When a TZ string includes a dst timezone without anything following it,
202then this file is used for the start/end rules.
203It is in the
204.BR tzfile "(5) format."
205By default, the zoneinfo Makefile hard links it to the
206.IR America/New_York " tzfile."
c1e90e15
WP
207.PP
208Above are the current standard file locations, but they are
209configurable when glibc is compiled.
1a14cdb6
PH
210.SH ATTRIBUTES
211For an explanation of the terms used in this section, see
212.BR attributes (7).
213.TS
214allbox;
215lb lb lb
216l l l.
217Interface Attribute Value
218T{
219.BR tzset ()
220T} Thread safety MT-Safe env locale
221.TE
47297adb 222.SH CONFORMING TO
595652e0 223POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
fea681da 224.SH NOTES
fea681da 225.LP
122dff10
MK
2264.3BSD had a function
227.BI "char *timezone(" zone ", " dst )
228that returned the
5b0dc1ba 229name of the timezone corresponding to its first argument (minutes
750d65df 230West of UTC).
c13182ef 231If the second argument was 0, the standard name was used,
e2905dc1 232otherwise the daylight saving time version.
47297adb 233.SH SEE ALSO
fea681da
MK
234.BR date (1),
235.BR gettimeofday (2),
236.BR time (2),
237.BR ctime (3),
238.BR getenv (3),
239.BR tzfile (5)