split out tzset and tzsetwall from ctime(3); first cut at making it
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 5 Dec 1990 12:11:30 +0000 (04:11 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 5 Dec 1990 12:11:30 +0000 (04:11 -0800)
understandable.
date and time created 90/12/04 20:11:30 by bostic

SCCS-vsn: lib/libc/gen/tzset.3 5.1

usr/src/lib/libc/gen/tzset.3 [new file with mode: 0644]

diff --git a/usr/src/lib/libc/gen/tzset.3 b/usr/src/lib/libc/gen/tzset.3
new file mode 100644 (file)
index 0000000..3a575d2
--- /dev/null
@@ -0,0 +1,244 @@
+.\" Copyright (c) 1989 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to Berkeley by
+.\" Arthur Olson.
+.\"
+.\" %sccs.include.redist.man%
+.\"
+.\"    @(#)tzset.3     5.1 (Berkeley) %G%
+.\"
+.TH TZSET 3 ""
+.SH NAME
+tzset, tzsetwall \- initialize time conversion information
+.SH SYNOPSIS
+.nf
+.ft B
+void tzset()
+
+void tzsetwall()
+.ft R
+.fi
+.SH DESCRIPTION
+.I Tzset
+initializes time conversion information used by the library routine
+.IR localtime .
+The environment variable
+.B TZ
+specifies how this is done.
+.PP
+If
+.B TZ
+does not appear in the environment, the best available approximation to
+local wall clock time, as specified by the
+.IR tzfile (5)-format
+file ``/etc/localtime'' is used.
+.PP
+If
+.B TZ
+appears in the environment but its value is a null string, Coordinated
+Universal Time (UTC) is used (without leap second correction).
+.PP
+If
+.B TZ
+appears in the environment and its value begins with a colon (``:''),
+the rest of its value is used as a pathname of a 
+.IR 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; otherwise, it is used as a pathname relative to
+the system time conversion information directory.
+.PP
+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
+information.
+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.
+.PP
+If the
+.B TZ
+environment variable does not specify a
+.IR tzfile (5)-format
+file and cannot be interpreted as a direct specification,
+UTC is used.
+.PP
+.I Tzsetwall
+sets things up so that
+.I localtime
+returns the best available approximation of local wall clock time.
+.SH "SPECIFICATION FORMAT"
+When
+.B TZ
+is used directly as a specification of the time conversion information,
+it must have the following syntax (spaces inserted for clarity):
+.IP
+\fIstd\|offset\fR[\fIdst\fR[\fIoffset\fR][\fB,\fIrule\fR]]
+.PP
+Where:
+.RS
+.TP 15
+.IR std " and " dst
+Three or more bytes that are the designation for the standard
+.RI ( std )
+or summer
+.RI ( dst )
+time zone.  Only
+.I std
+is required; if
+.I 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
+.RB ( : ),
+digits, comma
+.RB ( , ),
+minus
+.RB ( \(mi ),
+plus
+.RB ( \(pl ),
+and ASCII NUL are allowed.
+.TP
+.I offset
+Indicates the value one must add to the local time to arrive at
+Coordinated Universal Time.  The
+.I offset
+has the form:
+.RS
+.IP
+\fIhh\fR[\fB:\fImm\fR[\fB:\fIss\fR]]
+.RE
+.IP
+The minutes
+.RI ( mm )
+and seconds
+.RI ( ss )
+are optional.  The hour
+.RI ( hh )
+is required and may be a single digit.  The
+.I offset
+following
+.I std
+is required.  If no
+.I offset
+follows
+.IR 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) \(em if present \(em between zero and 59.  If preceded by a
+.RB `` \(mi '',
+the time zone shall be east of the Prime Meridian; otherwise it shall be
+west (which may be indicated by an optional preceding
+.RB `` \(pl '').
+.TP
+.I rule
+Indicates when to change to and back from summer time.  The
+.I rule
+has the form:
+.RS
+.IP
+\fIdate\fB/\fItime\fB,\fIdate\fB/\fItime\fR
+.RE
+.IP
+where the first
+.I date
+describes when the change from standard to summer time occurs and the
+second
+.I date
+describes when the change back happens.  Each
+.I time
+field describes when, in current local time, the change to the other
+time is made.
+.IP
+The format of
+.I date
+is one of the following:
+.RS
+.TP 10
+.BI J n
+The Julian day
+.I n
+.RI "(1\ \(<=" "\ n\ " "\(<=\ 365).
+Leap days are not counted; that is, in all years \(em including leap
+years \(em February 28 is day 59 and March 1 is day 60.  It is
+impossible to explicitly refer to the occasional February 29.
+.TP
+.I n
+The zero-based Julian day
+.RI "(0\ \(<=" "\ n\ " "\(<=\ 365).
+Leap days are counted, and it is possible to refer to February 29.
+.TP
+.BI M m . n . d
+The
+.IR d' th
+day
+.RI "(0\ \(<=" "\ d\ " "\(<=\ 6)
+of week
+.I n
+of month
+.I m
+of the year
+.RI "(1\ \(<=" "\ n\ " "\(<=\ 5,
+.RI "1\ \(<=" "\ m\ " "\(<=\ 12,
+where week 5 means ``the last
+.I d
+day in month
+.IR m ''
+which may occur in either the fourth or the fifth week).  Week 1 is the
+first week in which the
+.IR d' th
+day occurs.  Day zero is Sunday.
+.RE
+.IP "" 15
+The
+.I time
+has the same format as
+.I offset
+except that no leading sign
+.RB (`` \(mi ''
+or
+.RB `` \(pl '')
+is allowed.  The default, if
+.I time
+is not given, is
+.BR 02:00:00 .
+.RE
+.LP
+If no
+.I rule
+is present in the 
+.BR TZ 
+specification, the rules specified
+by the
+.IR tzfile (5)-format
+file
+.B posixrules
+in the system time conversion information directory are used, with the
+standard and summer time offsets from UTC replaced by those specified by
+the
+.I offset
+values in
+.BR TZ .
+.PP
+For compatibility with System V Release 3.1, a semicolon
+.RB ( ; )
+may be used to separate the
+.I rule
+from the rest of the specification.
+.SH FILES
+.ta \w'/usr/share/zoneinfo/posixrules\0\0'u
+/etc/localtime local time zone file
+.br
+/usr/share/zoneinfo    time zone directory
+.br
+/usr/share/zoneinfo/posixrules rules for POSIX-style TZ's
+.br
+/usr/share/zoneinfo/GMT        for UTC leap seconds
+.sp
+If
+.I /usr/share/zoneinfo/GMT
+is absent, UTC leap seconds are loaded from
+.IR /usr/share/zoneinfo/posixrules .
+.SH SEE ALSO
+date(1), gettimeofday(2), ctime(3), getenv(3), time(3), tzfile(5)