2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
.\"
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
|
|
|
.\"
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\"
|
|
|
|
.\" References consulted:
|
|
|
|
.\" Linux libc source code
|
|
|
|
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
|
|
|
|
.\" 386BSD man pages
|
|
|
|
.\" Modified Sun Jul 25 11:01:58 1993 by Rik Faith (faith@cs.unc.edu)
|
|
|
|
.\" Modified 2001-11-13, aeb
|
2004-12-01 14:10:12 +00:00
|
|
|
.\" Modified 2004-12-01 mtk and Martin Schulze <joey@infodrom.org>
|
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.TH TZSET 3 2001-11-13 "" "Linux Programmer's Manual"
|
|
|
|
.SH NAME
|
|
|
|
tzset, tzname, timezone, daylight \- initialize time conversion information
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <time.h>
|
|
|
|
.sp
|
|
|
|
.B void tzset (void);
|
|
|
|
.sp
|
|
|
|
.BI "extern char *" tzname [2];
|
|
|
|
.BI "extern long " timezone ;
|
|
|
|
.BI "extern int " daylight ;
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
2005-10-19 07:07:02 +00:00
|
|
|
The \fBtzset\fP() function initializes the \fItzname\fP variable from the
|
2004-11-03 13:51:07 +00:00
|
|
|
TZ environment variable. This function is automatically called by the
|
|
|
|
other time conversion functions that depend on the time zone.
|
|
|
|
In a SysV-like environment it will also set the variables \fItimezone\fP
|
|
|
|
(seconds West of GMT) and \fIdaylight\fP (0 if this time zone does not
|
2006-09-18 11:38:09 +00:00
|
|
|
have any daylight saving time rules, non-zero if there is a time during
|
|
|
|
the year when daylight saving time applies).
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
|
|
|
If the TZ variable does not appear in the environment, the \fItzname\fP
|
|
|
|
variable is initialized with the best approximation of local wall clock
|
|
|
|
time, as specified by the
|
|
|
|
.BR tzfile (5)-format
|
|
|
|
file \fIlocaltime\fP
|
|
|
|
found in the system timezone directory (see below).
|
|
|
|
(One also often sees
|
|
|
|
.I /etc/localtime
|
|
|
|
used here, a symlink to the right file in the system timezone directory.)
|
|
|
|
.PP
|
2004-12-08 14:54:16 +00:00
|
|
|
If the TZ variable does appear in the environment but its value is empty
|
2004-11-03 13:51:07 +00:00
|
|
|
or its value cannot be interpreted using any of the formats specified
|
|
|
|
below, Coordinated Universal Time (UTC) is used.
|
|
|
|
.PP
|
|
|
|
The value of TZ can be one of three formats. The first format is used
|
|
|
|
when there is no daylight saving time in the local time zone:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.I std offset
|
|
|
|
.RE
|
|
|
|
.sp
|
|
|
|
The \fIstd\fP string specifies the name of the time zone and must be
|
|
|
|
three or more alphabetic characters. The \fIoffset\fP string immediately
|
|
|
|
follows \fIstd\fP and specifies the time value to be added to the local
|
|
|
|
time to get Coordinated Universal Time (UTC). The \fIoffset\fP is positive
|
|
|
|
if the local time zone is west of the Prime Meridian and negative if it is
|
|
|
|
east. The hour must be between 0 and 24, and the minutes and seconds
|
|
|
|
0 and 59.
|
|
|
|
.PP
|
|
|
|
The second format is used when there is daylight saving time:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.I std offset dst [offset],start[/time],end[/time]
|
|
|
|
.RE
|
|
|
|
.sp
|
2006-09-18 11:38:09 +00:00
|
|
|
There are no spaces in the specification.
|
|
|
|
The initial \fIstd\fP and
|
|
|
|
\fIoffset\fP specify the standard time zone, as described above.
|
|
|
|
The \fIdst\fP string and \fIoffset\fP specify the name and offset for the
|
|
|
|
corresponding daylight saving time zone.
|
|
|
|
If the offset is omitted,
|
|
|
|
it default to one hour ahead of standard time.
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
2006-09-18 11:38:09 +00:00
|
|
|
The \fIstart\fP field specifies when daylight saving time goes into
|
2004-11-03 13:51:07 +00:00
|
|
|
effect and the \fIend\fP field specifies when the change is made back to
|
|
|
|
standard time. These fields may have the following formats:
|
|
|
|
.TP
|
|
|
|
J\fIn\fP
|
|
|
|
This specifies the Julian day with \fIn\fP between 1 and 365. February
|
|
|
|
29 is never counted even in leap years.
|
|
|
|
.TP
|
|
|
|
.I n
|
|
|
|
This specifies the Julian day with \fIn\fP between 1 and 365. February
|
|
|
|
29 is counted in leap years.
|
|
|
|
.TP
|
|
|
|
M\fIm\fP.\fIw\fP.\fId\fP
|
|
|
|
This specifies day \fId\fP (0 <= \fId\fP <= 6) of week \fIw\fP
|
|
|
|
(1 <= \fIw\fP <= 5) of month \fIm\fP (1 <= \fIm\fP <= 12). Week 1 is
|
|
|
|
the first week in which day \fId\fP occurs and week 5 is the last week
|
|
|
|
in which day \fId\fP occurs. Day 0 is a Sunday.
|
|
|
|
.PP
|
|
|
|
The \fItime\fP fields specify when, in the local time currently in effect,
|
|
|
|
the change to the other time occurs. If omitted, the default is 02:00:00.
|
2006-09-18 11:38:09 +00:00
|
|
|
|
|
|
|
Here is an example for New Zealand,
|
|
|
|
where the standard time (NZST) is 12 hours ahead of UTC,
|
|
|
|
and daylight saving time (NZDT), 13 hours ahead of UTC,
|
|
|
|
runs from the first Sunday in October to the third Sunday in March,
|
|
|
|
and the changeovers happen at the default time of 02:00:00:
|
|
|
|
.nf
|
|
|
|
|
|
|
|
TZ="NZST-12.00:00NZDT-13:00:00,M10.1.0,M3.3.0"
|
|
|
|
.fi
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
|
|
|
The third format specifies that the time zone information should be read
|
|
|
|
from a file:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
:[filespec]
|
|
|
|
.RE
|
|
|
|
.sp
|
|
|
|
If the file specification \fIfilespec\fP is omitted, the time zone
|
|
|
|
information is read from the file
|
|
|
|
.I localtime
|
|
|
|
in the system timezone directory, which nowadays usually is
|
|
|
|
.IR /usr/share/zoneinfo .
|
|
|
|
This file is in
|
|
|
|
.BR tzfile (5)
|
|
|
|
format. If \fIfilespec\fP is given, it specifies another
|
|
|
|
.BR tzfile (5)-format
|
|
|
|
file to read the time zone information from. If
|
|
|
|
\fIfilespec\fP does not begin with a `/', the file specification is
|
|
|
|
relative to the system timezone directory.
|
2006-09-18 11:38:09 +00:00
|
|
|
.PP
|
|
|
|
Here's an example, once more for New Zealand:
|
|
|
|
.nf
|
|
|
|
|
|
|
|
TZ=":Pacific/Auckland"
|
|
|
|
.fi
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH FILES
|
|
|
|
The system time zone directory used depends on the (g)libc version.
|
|
|
|
Libc4 and libc5 use
|
|
|
|
.IR /usr/lib/zoneinfo ,
|
|
|
|
and, since libc-5.4.6,
|
|
|
|
when this doesn't work, will try
|
|
|
|
.IR /usr/share/zoneinfo .
|
|
|
|
Glibc2 will use the environment variable TZDIR, when that exists.
|
|
|
|
Its default depends on how it was installed, but normally is
|
|
|
|
.IR /usr/share/zoneinfo .
|
|
|
|
.LP
|
|
|
|
This timezone directory contains the files
|
|
|
|
.nf
|
|
|
|
localtime local time zone file
|
|
|
|
posixrules rules for POSIX-style TZ's
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
Often
|
|
|
|
.I /etc/localtime
|
|
|
|
is a symlink to the file
|
|
|
|
.I localtime
|
|
|
|
or to the correct time zone file in the system time zone directory.
|
|
|
|
.SH "CONFORMING TO"
|
2006-08-03 13:57:30 +00:00
|
|
|
SVr4, POSIX.1-2001, 4.3BSD
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NOTES
|
|
|
|
Note that the variable \fIdaylight\fP does not indicate that daylight
|
2006-09-18 11:38:09 +00:00
|
|
|
saving time applies right now. It used to give the number of some
|
2004-11-03 13:51:07 +00:00
|
|
|
algorithm (see the variable \fItz_dsttime\fP in
|
|
|
|
.BR gettimeofday (2)).
|
|
|
|
It has been obsolete for many years but is required by SUSv2.
|
|
|
|
.LP
|
2004-12-01 14:10:12 +00:00
|
|
|
4.3BSD had a function
|
|
|
|
.BI "char *timezone(" zone ", " dst )
|
|
|
|
that returned the
|
2004-11-03 13:51:07 +00:00
|
|
|
name of the time zone corresponding to its first argument (minutes
|
|
|
|
West of GMT). If the second argument was 0, the standard name was used,
|
2006-09-18 11:38:09 +00:00
|
|
|
otherwise the daylight saving time version.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR date (1),
|
|
|
|
.BR gettimeofday (2),
|
|
|
|
.BR time (2),
|
|
|
|
.BR ctime (3),
|
|
|
|
.BR getenv (3),
|
|
|
|
.BR tzfile (5)
|