diff options
Diffstat (limited to 'tz/newtzset.3')
-rw-r--r-- | tz/newtzset.3 | 350 |
1 files changed, 350 insertions, 0 deletions
diff --git a/tz/newtzset.3 b/tz/newtzset.3 new file mode 100644 index 0000000..8aaa0ff --- /dev/null +++ b/tz/newtzset.3 @@ -0,0 +1,350 @@ +.TH NEWTZSET 3 +.SH NAME +tzset \- initialize time conversion information +.SH SYNOPSIS +.nf +.ie \n(.g .ds - \f(CW-\fP +.el .ds - \- +.B #include <time.h> +.PP +.B timezone_t tzalloc(char const *TZ); +.PP +.B void tzfree(timezone_t tz); +.PP +.B void tzset(void); +.PP +.B cc ... \*-ltz +.fi +.SH DESCRIPTION +.ie '\(en'' .ds en \- +.el .ds en \(en +.ie '\(lq'' .ds lq \&"\" +.el .ds lq \(lq\" +.ie '\(rq'' .ds rq \&"\" +.el .ds rq \(rq\" +.de q +\\$3\*(lq\\$1\*(rq\\$2 +.. +The +.B tzalloc +function +allocates and returns a timezone object described by +.BR TZ . +If +.B TZ +is not a valid timezone description, or if the object cannot be allocated, +.B tzalloc +returns a null pointer and sets +.BR errno . +.PP +The +.B tzfree +function +frees a timezone object +.BR tz , +which should have been successfully allocated by +.BR tzalloc . +This invalidates any +.B tm_zone +pointers that +.B tz +was used to set. +.PP +The +.B tzset +function +acts like +.BR tzalloc(getenv("TZ")) , +except it saves any resulting timezone object into internal +storage that is accessed by +.BR localtime , +.BR localtime_r , +and +.BR mktime . +The anonymous shared timezone object is freed by the next call to +.BR tzset . +If the implied call to +.B tzalloc +fails, +.B tzset +falls back on Universal Time (UT). +.PP +If +.B TZ +is null, the best available approximation to local (wall +clock) time, as specified by the +.BR tzfile (5)-format +file +.B localtime +in the system time conversion information directory, is used. +If +.B TZ +is the empty string, +UT is used, with the abbreviation "UTC" +and without leap second correction; please see +.BR newctime (3) +for more about UT, UTC, and leap seconds. If +.B TZ +is nonnull and nonempty: +.IP +if the value begins with a colon, it is used as a pathname of a file +from which to read the time conversion information; +.IP +if the value does not begin with a colon, it is first used as the +pathname of a file from which to read the time conversion information, +and, if that file cannot be read, is used directly as a specification of +the time conversion information. +.PP +When +.B TZ +is used as a pathname, if it begins with a slash, +it is used as an absolute pathname; otherwise, +it is used as a pathname relative to a system time conversion information +directory. +The file must be in the format specified in +.BR tzfile (5). +.PP +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 the alternative +.RI ( dst , +such as daylight saving time) +time zone. Only +.I std +is required; if +.I dst +is missing, then daylight saving time does not apply in this locale. +Upper- and lowercase letters are explicitly allowed. Any characters +except a leading colon +.RB ( : ), +digits, comma +.RB ( , ), +ASCII minus +.RB ( \*- ), +ASCII plus +.RB ( + ), +and NUL bytes are allowed. +Alternatively, a designation can be surrounded by angle brackets +.B < +and +.BR > ; +in this case, the designation can contain any characters other than +.B > +and NUL. +.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 , +daylight saving 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) \*(en if present \*(en between zero and 59. If preceded by a +.q "\*-" , +the time zone shall be east of the Prime Meridian; otherwise it shall be +west (which may be indicated by an optional preceding +.q "+" . +.TP +.I rule +Indicates when to change to and back from daylight saving 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 daylight saving 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. +As an extension to POSIX, daylight saving is assumed to be in effect +all year if it begins January 1 at 00:00 and ends December 31 at +24:00 plus the difference between daylight saving and standard time, +leaving no room for standard time in the calendar. +.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 \*(en including leap +years \*(en 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 +.q "the last \fId\fP day in month \fIm\fP" +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 POSIX does not allow a leading sign (\c +.q "\*-" +or +.q "+" ). +As an extension to POSIX, the hours part of +.I time +can range from \-167 through 167; this allows for unusual rules such +as +.q "the Saturday before the first Sunday of March" . +The default, if +.I time +is not given, is +.BR 02:00:00 . +.RE +.LP +Here are some examples of +.B TZ +values that directly specify the timezone; they use some of the +extensions to POSIX. +.TP +.B EST5 +stands for US Eastern Standard +Time (EST), 5 hours behind UT, without daylight saving. +.TP +.B <+12>\*-12<+13>,M11.1.0,M1.2.1/147 +stands for Fiji time, 12 hours ahead +of UT, springing forward on November's first Sunday at 02:00, and +falling back on January's second Monday at 147:00 (i.e., 03:00 on the +first Sunday on or after January 14). The abbreviations for standard +and daylight saving time are +.q "+12" +and +.q "+13". +.TP +.B IST\*-2IDT,M3.4.4/26,M10.5.0 +stands for Israel Standard Time (IST) and Israel Daylight Time (IDT), +2 hours ahead of UT, springing forward on March's fourth +Thursday at 26:00 (i.e., 02:00 on the first Friday on or after March +23), and falling back on October's last Sunday at 02:00. +.TP +.B <\*-04>4<\*-03>,J1/0,J365/25 +stands for permanent daylight saving time, 3 hours behind UT with +abbreviation +.q "\*-03". +There is a dummy fall-back transition on December 31 at 25:00 daylight +saving time (i.e., 24:00 standard time, equivalent to January 1 at +00:00 standard time), and a simultaneous spring-forward transition on +January 1 at 00:00 standard time, so daylight saving time is in effect +all year and the initial +.B <\*-04> +is a placeholder. +.TP +.B <\*-03>3<\*-02>,M3.5.0/\*-2,M10.5.0/\*-1 +stands for time in western Greenland, 3 hours behind UT, where clocks +follow the EU rules of +springing forward on March's last Sunday at 01:00 UT (\-02:00 local +time, i.e., 22:00 the previous day) and falling back on October's last +Sunday at 01:00 UT (\-01:00 local time, i.e., 23:00 the previous day). +The abbreviations for standard and daylight saving time are +.q "\*-03" +and +.q "\*-02". +.PP +If no +.I rule +is present in +.BR TZ , +the rules specified +by the +.BR tzfile (5)-format +file +.B posixrules +in the system time conversion information directory are used, with the +standard and daylight saving time offsets from UT 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 +/usr/share/zoneinfo timezone information directory +.br +/usr/share/zoneinfo/localtime local timezone file +.br +/usr/share/zoneinfo/posixrules used with POSIX-style TZ's +.br +/usr/share/zoneinfo/GMT for UTC leap seconds +.sp +If +.B /usr/share/zoneinfo/GMT +is absent, +UTC leap seconds are loaded from +.BR /usr/share/zoneinfo/posixrules . +.SH SEE ALSO +getenv(3), +newctime(3), +newstrftime(3), +time(2), +tzfile(5) +.\" This file is in the public domain, so clarified as of +.\" 2009-05-17 by Arthur David Olson. |