tzset

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
TZSET(3)		  Linux Programmer’s Manual		     TZSET(3)



NAME
       tzset,  tzname, timezone, daylight - initialize time conversion infor-
       mation

SYNOPSIS
       #include <time.h>

       void tzset (void);

       extern char *tzname[2];
       extern long timezone;
       extern int daylight;

DESCRIPTION
       The tzset() function initializes the tzname variable from the TZ envi-
       ronment	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 timezone (seconds West
       of GMT) and daylight (0 if this time zone does not have	any  daylight
       savings	time  rules,  nonzero if there is a time during the year when
       daylight savings time applies).

       If the TZ variable does not appear  in  the  environment,  the  tzname
       variable	 is  initialized  with	the  best approximation of local wall
       clock time, as specified by the tzfile(5)-format file localtime	found
       in  the	system	timezone directory (see below).	 (One also often sees
       /etc/localtime used here, a symlink to the right file  in  the  system
       timezone directory.)

       If  the	TZ  variable  does appear in the environment but its value is
       NULL or its value cannot be interpreted using any of the formats spec-
       ified below, Coordinated Universal Time (UTC) is used.

       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:

	      std offset

       The std string specifies the name of the time zone and must  be	three
       or  more alphabetic characters.	The offset string immediately follows
       std and specifies the time value to be added to the local time to  get
       Coordinated Universal Time (UTC).  The offset 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.

       The second format is used when there is daylight saving time:

	      std offset dst [offset],start[/time],end[/time]

       There are no spaces in the specification.  The initial std and  offset
       specify	the  standard  time zone, as described above.  The dst string
       and offset specify the name and offset for the corresponding  daylight
       savings time zone.  If the offset is omitted, it defaults  to one hour
       ahead of standard time.

       The start field specifies when daylight savings time goes into  effect
       and  the	 end field specifies when the change is made back to standard
       time.  These fields may have the following formats:

       Jn     This specifies the Julian day with n between 1 and 365.  Febru-
	      ary 29 is never counted even in leap years.

       n      This specifies the Julian day with n between 1 and 365.  Febru-
	      ary 29 is counted in leap years.

       Mm.w.d This specifies day d (0 <= d <= 6) of week w (1 <= w <=  5)  of
	      month  m (1 <= m <= 12).	Week 1 is the first week in which day
	      d occurs and week 5 is the last week in  which  day  d  occurs.
	      Day 0 is a Sunday.

       The  time  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.

       The  third  format  specifies that the time zone information should be
       read from a file:

	      :[filespec]

       If the file specification filespec is omitted, the time zone  informa-
       tion is read from the file localtime in the system timezone directory,
       which nowadays  usually	is  /usr/share/zoneinfo.   This	 file  is  in
       tzfile(5)   format.   If	 filespec  is  given,  it  specifies  another
       tzfile(5)-format file to read the  time	zone  information  from.   If
       filespec does not begin with a ‘/’, the file specification is relative
       to the system timezone directory.

FILES
       The system time zone directory used depends on  the  (g)libc  version.
       Libc4  and  libc5  use  /usr/lib/zoneinfo, and, since libc-5.4.6, when
       this doesn’t work, will try /usr/share/zoneinfo.	 Glibc2 will use  the
       environment  variable TZDIR, when that exists.  Its default depends on
       how it was installed, but normally is /usr/share/zoneinfo.

       This timezone directory contains the files
       localtime      local time zone file
       posixrules     rules for POSIX-style TZ’s

       Often /etc/localtime is a symlink to the file localtime or to the cor-
       rect time zone file in the system time zone directory.

CONFORMING TO
       SVID 3, POSIX, BSD 4.3

NOTES
       Note  that  the variable daylight does not indicate that daylight sav-
       ings time applies right now. It used to give the number of some	algo-
       rithm  (see  the variable tz_dsttime in gettimeofday(2)).  It has been
       obsolete for many years but is required by SUSv2.

       BSD4.3 had a routine char *timezone(zone,dst) that returned  the	 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, other-
       wise the daylight savings time version.

SEE ALSO
       date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5)



				  2001-11-13			     TZSET(3)