Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TZSET(3)		     Library Functions Manual			TZSET(3)

NAME
     daylight, timezone, tzname, tzset -- initialize time conversion information

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <time.h>

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

     void
     tzset(void);

DESCRIPTION
     The  tzset()  function  initializes time conversion information used by the
     library routine localtime(3).  The environment variable  TZ  specifies  how
     this is done.

     If  TZ does not appear in the environment, the best available approximation
     to local wall  clock  time,  as  specified  by  the  tzfile(5)-format  file
     /etc/localtime is used.

     If  TZ  appears  in the environment but its value is a null string, Coordi-
     nated Universal Time (UTC) is used (without leap second correction).

     If TZ appears in the environment and its value begins with a  colon  (`:'),
     the rest of its value is used as a pathname of a tzfile(5)-format file from
     which  to	read the time conversion information.  If the first character of
     the pathname is a slash (`/') it is used as an  absolute  pathname;  other-
     wise,  it	is used as a pathname relative to the system time conversion in-
     formation directory.

     If its value does not begin with a colon, it is first used as the	pathname
     of  a  file (as described above) from which to read the time conversion in-
     formation.  If that file cannot be read, the value is then interpreted as a
     direct specification (the format is described below) of the time conversion
     information.

     If the TZ environment variable does not specify a tzfile(5)-format file and
     cannot be interpreted as a direct specification, UTC is used.

     After the first call to tzset, the timezone variable is set to the  differ-
     ence,  in	seconds,  between Coordinated Universal Time (UTC) and the local
     time.  The daylight variable is set to 0 if the local timezone is observing
     standard time.  It is set to 1 if the local timezone ever observes  an  al-
     ternate  time,  such as summer time.  The first element of the tzname array
     is the timezone name of standard time, while the second element is the name
     of the altnerative time zone.

SPECIFICATION FORMAT
     When TZ is used directly as a specification of the time conversion informa-
     tion, it must have the following syntax (spaces inserted for clarity):

	   std offset [dst [offset] [, rule]]

     Where:

	   std and dst	Three or more bytes that are  the  designation	for  the
			standard  (std)  or summer (dst) time zone.  Only std is
			required; if dst is missing, then summer time  does  not
			apply  in  this locale.  Upper and lowercase letters are
			explicitly allowed.  Any  characters  except  a  leading
			colon  (`:'),  digits,	comma  (`,'),  minus (`-'), plus
			(`+'), and ASCII NUL are allowed.

	   offset	Indicates the value one must add to the  local	time  to
			arrive	at  Coordinated  Universal Time.  The offset has
			the form:

			      hh[:mm[:ss]]

			The minutes (mm) and seconds  (ss)  are  optional.   The
			hour  (hh)  is	required and may be a single digit.  The
			offset following std is required.  If no offset  follows
			dst,  summer  time  is	assumed  to be one hour ahead of
			standard time.	One or more  digits  may  be  used;  the
			value  is  always  interpreted as a decimal number.  The
			hour must be between zero and 24, and the  minutes  (and
			seconds)  -- if present -- between zero and 59.  If pre-
			ceded by a (`-') the time zone	shall  be  east  of  the
			Prime Meridian; otherwise it shall be west (which may be
			indicated by an optional preceding (`+')).

	   rule 	Indicates  when  to change to and back from summer time.
			The rule has the form:

			      date/time,date/time

			where the first date  describes  when  the  change  from
			standard  to  summer time occurs and the second date de-
			scribes when the change back happens.  Each  time  field
			describes when, in current local time, the change to the
			other time is made.

			The format of date is one of the following:

			J n	 The  Julian  day  n (1 <= n <= 365).  Leap days
				 are not counted; that is, in all years  --  in-
				 cluding leap years -- February 28 is day 59 and
				 March 1 is day 60.  It is impossible to explic-
				 itly refer to the occasional February 29.

			n	 The  zero-based  Julian  day (0 <= n <= 365 ) .
				 Leap days are counted, and it	is  possible  to
				 refer to February 29.

			M m.n.d  The d'th day (0 <= d <= 6) of week n of month m
				 of  the  year	(1  <=	n <= 5), (1 <= m <= 12),
				 where week 5 means "the last d day in month  m"
				 which	may  occur  in	either the fourth or the
				 fifth week).  Week 1 is the first week in which
				 the d'th day occurs.  Day zero is Sunday.

				 The time has the same format as  offset  except
				 that no leading sign (`-') or (`+') is allowed.
				 The default, if time is not given, is 02:00:00.

			If no rule is present in the TZ specification, the rules
			specified by the tzfile(5)-format file posixrules in the
			system	time  conversion information directory are used,
			with the standard and summer time offsets from	UTC  re-
			placed by those specified by the offset values in TZ.

     For  compatibility with System V Release 3.1, a semicolon (`;') may be used
     to separate the rule from the rest of the specification.

FILES
     /etc/localtime		     local time zone file
     /usr/share/zoneinfo	     time zone directory
     /usr/share/zoneinfo/posixrules  rules for POSIX-style TZs
     /usr/share/zoneinfo/Etc/GMT     for UTC leap seconds

     If the file /usr/share/zoneinfo/UTC does not exist, UTC  leap  seconds  are
     loaded from /usr/share/zoneinfo/posixrules.

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

HISTORY
     The tzset() function first appeared in 4.4BSD.

FreeBSD ports 15.quarterly     September 30, 2025			TZSET(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tzset&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help