tzset,
TZSET(T)            Linux Programmer's Manual            TZSET(T)



NAME
       tzset,  tzname,  timezone, daylight - initialize time con-
       version information

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  environment variable.  This function is automati-
       cally 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 day-
       light savings time rules, nonzero if there is a time  dur-
       ing 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(e)-format file localtime found in the system  time-
       zone   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 specified 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  min-
       utes 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.   February  29  is  never counted even in leap
              years.

       n      This specifies the Julian day with n between 1  and
              365.  February 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  Sun-
              day.

       The  time fields specify when, in the local time currently
       in effect, the change to the other time occurs.  If  omit-
       ted, 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  information  is  read from the file localtime in the
       system  timezone  directory,  which  nowadays  usually  is
       /usr/share/zoneinfo.   This  file  is in tzfile(e) format.
       If filespec is given, it specifies another  tzfile(e)-for-
       mat file to read the time zone information from.  If file-
       spec 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 correct 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 savings time applies right now. It used  to  give
       the  number of some algorithm (see the variable tz_dsttime
       in gettimeofday(y)).  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, otherwise  the
       daylight savings time version.

SEE ALSO
       date(e),  gettimeofday(y),  time(e),  ctime(e), getenv(v),
       tzfile(e)



                            2001-11-13                   TZSET(T)