Manual Page Result
0
Command: tzname | Section: 3 | Source: Digital UNIX | File: tzname.3.gz
timezone(3) Library Functions Manual timezone(3)
NAME
daylight, timezone, tzname, tzset - Sets and accesses timezone conver-
sion information
LIBRARY
Standard C Library (libc.so, libc.a)
SYNOPSIS
#include <time.h>
void tzset(void):
extern int daylight; extern long timezone; extern char *tzname[];
STANDARDS
Interfaces documented on this reference page conform to industry stan-
dards as follows:
tzset(): POSIX.1, XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about in-
dustry standards and associated tags.
DESCRIPTION
The tzset() function uses the value of the environment variable TZ to
set time conversion information used by several other functions, in-
cluding ctime(), ctime_r(), getdate(), getdate_r(), localtime(), local-
time_r(), mktime(), strftime(), and strptime().
If the TZ variable is not set, tzset uses implementation-dependent de-
fault timezone information. On DIGITAL UNIX systems, this information
is located in the /etc/zoneinfo/localtime file. See the section, DIGI-
TAL UNIX Timezone Handling, for details.
The tzset() function sets the external variable tzname as follows:
tzname[0] = "std";
tzname[1] = "dst";
where std indicates the standard timezone and dst designates the alter-
native timezone (such as Daylight Savings Time). (These variables are
described below in the section, The TZ Environment Variable.)
The tzset() function also sets the external variable daylight to 0 if
Daylight Savings Time conversions should never be applied for the time
zone in use. Otherwise, daylight is set to a nonzero value.
The external variable timezone is set to the difference, in seconds,
between Coordinated Universal Time (UTC) and local standard time. For
example: center,tab(@); lfHB lfHB l l. TZ@timezone EST@5*60*60
GMT@0*60*60 JST@-9*60*60 MET@-1*60*60 MST@7*60*60 PST@8*60*60
DIGITAL UNIX Timezone Handling
DIGITAL UNIX uses a public-domain timezone-handling package that puts
timezone conversion rules in easily accessible and modifiable files.
These files are in the directory /etc/zoneinfo/sources. The timezone
compiler zic(8) converts these files to a special format described in
tzfile(4) and places them in the /etc/zoneinfo directory. This format
is readable by the C library functions that handle timezone informa-
tion.
The tzset() function uses the tzfile-formatted file linked by
/etc/zoneinfo/localtime to set the timezone conversion information.
The /etc/zoneinfo/localtime link is set during installation to a file
in the /etc/zoneinfo directory. For example, in the eastern United
States, /etc/zoneinfo/localtime is linked to /etc/zoneinfo/US/Eastern.
If the TZ environment variable is defined, the defined value overrides
the timezone information in /etc/zoneinfo/localtime. TZ can be set by
a user as a regular environment variable for converting to alternate
time zones. See the section, The TZ Environment Variable, for details.
Getting Timezone Information
The libc ctime() and localtime() routines return the local time and
timezone information. The ctime() routine returns a string that corre-
sponds to the local time; for example, Tue Oct 27 13:35:29 1992.
The localtime() routine returns a pointer to a tm structure (defined in
<sys/time.h>) that contains the local time expressed in fields of the
tm structure. For timezone information, there are three relevant
fields: A flag that is set to 1 if daylight savings time is currently
in effect. Otherwise, the flag is set to 0. Seconds east of Green-
wich. For example, -18000 means 5 hours west of Greenwich. Abbrevia-
tion for the current time zone (for example, EST, PDT, GMT).
Setting Timezone Information
The /etc/zoneinfo/localtime link can be changed by the system adminis-
trator to any file in the /etc/zoneinfo directory.
For example, to change the default system timezone to Canada's Atlantic
time zone, enter the following as superuser:
# ln -s /etc/zoneinfo/Canada/Atlantic /etc/zoneinfo/localtime
Subsequent calls to the timezone-related functions in libc (ctime() and
localtime()) use this link for the default timezone information.
If the timezone and daylight savings time information in the /etc/zone-
info/sources directory is incorrect for your time zone, you can change
the information in the source files and then use the zic command to
generate a corresponding /etc/zoneinfo file.
A user can override the default timezone information by setting the TZ
environment variable as described in the section, The TZ Environment
Variable.
The TZ Environment Variable
When TZ appears in the environment and its value is not a null string,
the value has one of three formats:
:
:pathname
stdoffset[dst[offset] [,start[/time],end[/time]]] [Digital] If TZ
has the single colon format (:), Coordinated Universal Time (UTC) is
used.
[Digital] If TZ has the colon-pathname format (:pathname), the charac-
ters following the colon specify the pathname of a tzfile(4) format
file from which to read the time conversion information. A pathname
beginning with a slash (/) represents an absolute pathname; otherwise,
the pathname is relative to the system time conversion information di-
rectory /etc/zoneinfo.
If TZ does not begin with a colon (:), the components of the string are
as follows: Three or more characters that are the designation for the
standard (std) or alternative (dst) time zone (such as Daylight Savings
Time). Only std is required. If dst is not supplied, the alternative
time does not apply to the locale. Upper- and lower-case letters are
explicitly allowed. Any characters, except digits, a leading colon
(:), comma (,), minus (-), plus (+), and ASCII NUL, are allowed. Indi-
cates the value to be added to the local time to arrive at GMT. The
offset has the form:
hh[:mm[:ss]]
The minutes (mm) and seconds (ss) are optional. The hour (hh)
is required and can be either one or two digits. The offset
following std is required. If no offset follows dst, the alter-
native time is assumed to be one hour ahead of standard time.
One or more digits can be used; the value is always interpreted
as a decimal number. The hour value must be between zero and
24. The value for the minutes and seconds, if present, must be
between zero and 59. If preceded by a minus sign (-), the time
zone is east of the Prime Meridian; otherwise it is west, which
can be indicated by a preceding plus sign (+). Indicates when
to change to and return from alternative time. The start argu-
ment is the date when the change from standard to alternative
time occurs; end is the date for changing back. If start and
end are not specified, the default is the US Daylight Saving
Time start and end dates. The format for start and end must be
one of the following: The Julian day n (1 <= n <= 365). Leap
days are not counted. That is, in all years, including leap
years, February 28 is day 59 and March 1 is day 60. It is im-
possible to explicitly refer to February 29. The zero-based Ju-
lian day (0 <= n <= 365). Leap days are counted making it pos-
sible to refer to February 29. The dth day (0 <= d <= 6) of
week n of month m of the year (1 <= n <= 5, 1 <= m <= 12). When
n is 5, it refers to the last d day of month m which may occur
in either the fourth or fifth week. Week 1 is the first week in
which the dth day occurs. Day zero is Sunday. Describes the
time when, in current time, the change to or return from alter-
native time occurs. The time parameter has the same format as
offset, except that there can be no leading minus (-) or plus
(+) sign. If time is not specified, the default is 02:00:00.
As an example, the TZ variable value EST5EDT4,M4.1.0,M10.5.0 describes
the rule defined in 1987 for the Eastern time zone in the US. EST
(Eastern Standard Time) is the designation for standard time, which is
5 hours behind GMT. EDT (Eastern Daylight Time) is the designation for
alternative time, which is 4 hours behind GMT. EDT starts on the first
Sunday in April and ends on the last Sunday in October. In both cases,
since time was not specified, the changes occur at the default time,
which is 2:00 A.M. Note that the start and end dates did not need to
be specified since they are the defaults.
NOTES
[Digital] For users of the SVID2 habitat, TZ is defined by default in
the following format:
std offset [dst[offset] ] [Digital] For users of the SVID3 habitat,
TZ is defined by default in the following format:
:pathname See the section, The TZ Environment Variable, for defini-
tions of the parameters used in these formats.
RELATED INFORMATION
Functions: ctime(3), ctime_r(3), difftime(3), getdate(3), getdate_r(3),
getenv(3), localtime(3), localtime_r(3), mktime(3), strftime(3), strp-
time(3), time(3)
Commands: date(1), zdump(8), zic(8)
Files: tzfile(4)
Standards: standards(5) delim off
timezone(3)