TZ(5)


NAME
     TZ - Time zone environment variable

SYNOPSIS
     TZ=zone[-]offset[dst[offset][,start[/time],end[/time]]]
     TZ=[:]zoneinfo
     TZ=:zoneinfo:zone[-]offset[dst[offset][,start[/time],end[/time]]]

DESCRIPTION
     The TZ environment variable tells functions such as the  ctime(3)  family
     and  programs like date what the time zone and daylight saving rules are.
     The value of TZ can be in one of three forms:

     The POSIX standardized form shown in the  first  line  of  the  synopsis.
     This form specifies the zone names, offsets from GMT, and daylight saving
     changeover times for at least the current year.

     The second synopsis form is for the BSD  zoneinfo  data  files  found  in
     /usr/lib/zoneinfo.   These  files  contain  all the information needed to
     compute the offsets and daylight saving changeover  times  for  the  past
     years  in  many  different time zones.  Almost all large UNIX systems use
     this info.

     Under Minix-vmd one should always use a POSIX  style  TZ  value  that  is
     valid  this  year.  It is needed at boot time to set the clock.  Once the
     zoneinfo library is available the time functions will first try to use  a
     zoneinfo   file   named   by   the  first  part  of  the  standard  form,
     "zone[-]offset[dst[offset]]".  If that fails then "zone" is  tried.   One
     has  to make sure that the zoneinfo file selected is the correct one.  If
     not then one can either add a link  in  the  zoneinfo  directory  to  the
     correct  file,  or  one can use the third synopsis form, a Minix specific
     new form that gives both a zoneinfo file name and a standard string.

  POSIX standard form

     zone A three or more letter name for the time  zone  in  normal  (winter)
          time.

     [-]offset
          A signed time telling the offset of the  time  zone  westwards  from
          Greenwich.   The  time  has  the form hh[:mm[:ss]] with a one of two
          digit hour, and optional two digit minutes and seconds.

     dst  The name of the time zone when daylight saving is in effect.  It may
          be  followed  by  an  offset telling how big the clock correction is
          other than the default of 1 hour.

     start/time,end/time
          Specifies the start and end of  the  daylight  saving  period.   The
          start  and  end  fields  indicate on what day the changeover occurs.
          They must be in one of the following formats:

          Jn   The Julian day n (1 <= n <= 365) ignoring leap days, i.e. there
               is no February 29.

          n    The zero-based Julian day (0 <= n <= 365).  Leap days  are  not
               ignored.

          Mm.n.d
               This indicates month m, the n-th occurrence of day d (1 <= m <=
               12,  1  <= n <= 5, 0 <= d <= 6, 0=Sunday).  The 5-th occurrence
               means the last occurrence of that day in a month.  So M4.1.0 is
               the  first  Sunday  in  April,  M9.5.0  is  the  last Sunday in
               September.

          The time field indicates the time the changeover occurs on the given
          day.

EXAMPLES
     Greenwich Mean Time:

          TZ=GMT0

     Central European Time, 1 hour east from Greenwich, daylight saving starts
     on  the  last  Sunday  in  March  at  2 AM and ends on the last Sunday in
     October at 3 AM:

          TZ='CET-1CEST,M3.5.0/2,M10.5.0/3'

     British time, daylight saving starts and ends at the same moment as  CET,
     but in an earlier time zone:

          TZ=GMT0BST,M3.5.0/1,M10.5.0/2

     Note that only a few European and  North-American  time  zone  names  are
     present  in /usr/lib/zoneinfo, so for the above definition one must add a
     link from Europe/London to GMT0BST in the zoneinfo directory.   Otherwise
     one  needs to use the following Minix specific definition to let the time
     library find the zoneinfo file:

          TZ=:Europe/London:GMT0BST,M3.5.0/1,M10.5.0/2

     U.S. Eastern Standard Time, 5 hours west from Greenwich, daylight  saving
     starts  on  the first Sunday in April at 2 AM and ends on the last Sunday
     in October at 2 AM:

          TZ=EST5EDT,M4.1.0/2,M10.5.0/2



     It shouldn't surprise you that daylight saving in New Zealand is observed
     in  the  months  opposite  from  the previous examples.  It starts on the
     first Sunday in October at 2 AM and ends on the third Sunday in March  at
     3 AM:

          TZ=:Pacific/Auckland:NZST-12NZDT,M10.1.0/2,M3.3.0/3

     Using ln Pacific/Auckland NZST-12NZDT in /usr/lib/zoneinfo will allow one
     to use the POSIX standard form.

     The command zdump(8) can be used to check the TZ you are  trying  to  put
     together:

          zdump -v 'TZ-string' | more

     First check what the timezone library has to offer, let's try Moscow:

          zdump -v Europe/Moscow | more

     Then test your timezone definition with timezone names that  are  not  in
     the library, e.g.

          zdump -v www-3sss,M3.5.0/2,M10.5.0/3 | more

     to make sure that the definition is correct at boot time.   Next  make  a
     link if necessary and try the proper definition:

          ln Europe/Moscow MOST
          zdump -v MOST-3MOSST,M3.5.0/2,M10.5.0/3 | more

     That definition should be put in /etc/timeinfo.

     The source files used to  create  the  time  zone  library  are  also  in
     /usr/lib/timeinfo in files like "europe", "asia", etc.  They contain lots
     of interesting comments next to the time rules.

SEE ALSO
     readclock(8), date(1), utime(1), ctime(3), zic(8).

BUGS
     You may have noticed that many fields are optional.   Do  no  omit  them,
     because  the  defaults are bogus.  If you need daylight saving then fully
     specify the changeovers.

     West is negative, east is positive, ask any sailor.

     Next year's  time  zone  and  daylight  saving  time  are  determined  by
     politicians.


AUTHOR
     Kees J. Bot (kjb@cs.vu.nl)