1991-01-17 19:05:13 -05:00
|
|
|
.TH NEWTZSET 3
|
|
|
|
|
.SH NAME
|
|
|
|
|
tzset \- initialize time conversion information
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
|
.nf
|
2014-06-28 16:35:14 -07:00
|
|
|
.ie \n(.g .ds - \f(CW-\fP
|
|
|
|
|
.el ds - \-
|
1991-01-17 19:05:13 -05:00
|
|
|
.B void tzset()
|
|
|
|
|
.PP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B cc ... \*-ltz
|
1991-01-17 19:05:13 -05:00
|
|
|
.fi
|
|
|
|
|
.SH DESCRIPTION
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
.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
|
|
|
|
|
..
|
1991-01-17 19:05:13 -05:00
|
|
|
.I Tzset
|
|
|
|
|
uses the value of the environment variable
|
|
|
|
|
.B TZ
|
|
|
|
|
to set time conversion information used by
|
|
|
|
|
.IR localtime .
|
|
|
|
|
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
|
|
|
|
|
.B localtime
|
|
|
|
|
in the system time conversion information directory, is used by
|
|
|
|
|
.IR localtime .
|
|
|
|
|
If
|
|
|
|
|
.B TZ
|
|
|
|
|
appears in the environment but its value is a null string,
|
2013-09-04 19:07:31 -07:00
|
|
|
Universal Time (UT) is used, with the abbreviation "UTC"
|
2013-09-05 06:53:45 -07:00
|
|
|
and without leap second correction; please see
|
2013-09-05 07:07:58 -07:00
|
|
|
.IR newctime (3)
|
2013-09-05 06:53:45 -07:00
|
|
|
for more about UT, UTC, and leap seconds. If
|
1991-01-17 19:05:13 -05:00
|
|
|
.B TZ
|
|
|
|
|
appears in the environment and its value is not a null string:
|
|
|
|
|
.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
|
|
|
|
|
.IR 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 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 ( , ),
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
ASCII minus
|
2014-06-28 16:35:14 -07:00
|
|
|
.RB ( \*- ),
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
ASCII plus
|
2014-06-28 16:35:14 -07:00
|
|
|
.RB ( + ),
|
2014-06-28 14:09:32 -07:00
|
|
|
and NUL bytes are allowed.
|
1991-01-17 19:05:13 -05:00
|
|
|
.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
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
seconds) \*(en if present \*(en between zero and 59. If preceded by a
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-" ,
|
1991-01-17 19:05:13 -05:00
|
|
|
the time zone shall be east of the Prime Meridian; otherwise it shall be
|
|
|
|
|
west (which may be indicated by an optional preceding
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "+" .
|
1991-01-17 19:05:13 -05:00
|
|
|
.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.
|
Improve the support for perpetual DST.
Problem reported by Zefram in
<http://mm.icann.org/pipermail/tz/2013-September/020059.html>.
* localtime.c (tzparse): Elide simultaneous entries out of and
into DST if DST goes for an hour more than a year (actually, for
more than the DST offset more than a year). Since this
optimization can elide all entries, avoid looping forever looking
for entries that will never arrive. While we're at it, fix
another portability bug where the code assumed wraparound on
signed integer overflow.
* newtzset.3, tzfile.5: Mention that as an extension to POSIX,
if DST covers the entire year plus the DST offset, it's assumed to
be in effect all year. Give an example.
* zic.c (stringrule): Omit the "J" in January and February,
as this can save a byte or two in the output.
(rule_cmp): New function.
(stringzone): Do a better job of constructing the standard-time
abbreviation when there is perpetual DST. Defer to the new
stringrule to construct the times for perpetual DST.
Fix bug noted by Zefram, which caused a stray hour of standard
time to be inserted in an otherwise perpetual DST.
Previously, this code generated "WARST4WARST,J1/0,J365/24"
for the San Luis example; now it generates "WART4WARST,0/0,J365/25".
2013-09-08 07:49:22 -07:00
|
|
|
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.
|
1991-01-17 19:05:13 -05:00
|
|
|
.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).
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
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
|
1991-01-17 19:05:13 -05:00
|
|
|
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,
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
where week 5 means
|
|
|
|
|
.q "the last \fId\fP day in month \fIm\fP"
|
1991-01-17 19:05:13 -05:00
|
|
|
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
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
except that POSIX does not allow a leading sign (\c
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "\*-"
|
1991-01-17 19:05:13 -05:00
|
|
|
or
|
2014-06-28 16:35:14 -07:00
|
|
|
.q "+" ).
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
As an extension to POSIX, the hours part of
|
|
|
|
|
.I time
|
2014-06-28 16:35:14 -07:00
|
|
|
can range from \-167 through 167; this allows for unusual rules such
|
Don't abuse "`" to mean open quote.
This was appropriate before Unicode, where "`" and "'" often balanced
in visual output, but that's been obsolete for a while.
Overall, single-quote 'like this' instead of `like this', and
double-quote "like this" or (in typeset output) “like this”
instead of ``like this''. While we're at it, fix some glitches
with hyphens versus minus versus en dash versus em dash.
* Makefile ($(MANTXTS)): Use UTF-8 locale to produce *.txt output.
* checktab.awk, tzselect.ksh:
Quote 'like this' in diagnostics, instead of `like this'.
* date.1, newctime.3, newtzset.3, time2posix.3, zic.8 (q, lq, rq):
New macros. Use them for better double-quoting in output.
* workman.sh: Tell Perl that its stdin and stdout are UTF-8.
* NEWS: Document this.
2014-06-15 13:27:37 -07:00
|
|
|
as
|
|
|
|
|
.q "the Saturday before the first Sunday of March" .
|
|
|
|
|
The default, if
|
1991-01-17 19:05:13 -05:00
|
|
|
.I time
|
|
|
|
|
is not given, is
|
|
|
|
|
.BR 02:00:00 .
|
|
|
|
|
.RE
|
|
|
|
|
.LP
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
Here are some examples of
|
|
|
|
|
.B TZ
|
|
|
|
|
values that directly specify the time zone rules; they use some of the
|
|
|
|
|
extensions to POSIX.
|
|
|
|
|
.TP
|
|
|
|
|
.B EST5
|
2013-09-21 08:35:26 -07:00
|
|
|
stands for US Eastern Standard
|
|
|
|
|
Time (EST), 5 hours behind UTC, without daylight saving.
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B FJT\*-12FJST,M10.3.1/146,M1.3.4/75
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
stands for Fiji Time (FJT) and Fiji Summer Time (FJST), 12 hours ahead
|
2013-09-09 12:39:51 -07:00
|
|
|
of UTC, springing forward on October's third Monday at
|
|
|
|
|
146:00 (i.e., 02:00 on the first Sunday on or after October 21), and
|
|
|
|
|
falling back on January's third Thursday at 75:00 (i.e., 03:00 on the
|
|
|
|
|
first Sunday on or after January 18).
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B IST\*-2IDT,M3.4.4/26,M10.5.0
|
2013-09-09 12:39:51 -07:00
|
|
|
stands for Israel Standard Time (IST) and Israel Daylight Time (IDT),
|
|
|
|
|
2 hours ahead of UTC, springing forward on March's fourth
|
2014-03-13 17:30:17 -07:00
|
|
|
Thursday at 26:00 (i.e., 02:00 on the first Friday on or after March
|
2013-09-09 12:39:51 -07:00
|
|
|
23), and falling back on October's last Sunday at 02:00.
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
.TP
|
Improve the support for perpetual DST.
Problem reported by Zefram in
<http://mm.icann.org/pipermail/tz/2013-September/020059.html>.
* localtime.c (tzparse): Elide simultaneous entries out of and
into DST if DST goes for an hour more than a year (actually, for
more than the DST offset more than a year). Since this
optimization can elide all entries, avoid looping forever looking
for entries that will never arrive. While we're at it, fix
another portability bug where the code assumed wraparound on
signed integer overflow.
* newtzset.3, tzfile.5: Mention that as an extension to POSIX,
if DST covers the entire year plus the DST offset, it's assumed to
be in effect all year. Give an example.
* zic.c (stringrule): Omit the "J" in January and February,
as this can save a byte or two in the output.
(rule_cmp): New function.
(stringzone): Do a better job of constructing the standard-time
abbreviation when there is perpetual DST. Defer to the new
stringrule to construct the times for perpetual DST.
Fix bug noted by Zefram, which caused a stray hour of standard
time to be inserted in an otherwise perpetual DST.
Previously, this code generated "WARST4WARST,J1/0,J365/24"
for the San Luis example; now it generates "WART4WARST,0/0,J365/25".
2013-09-08 07:49:22 -07:00
|
|
|
.B WART4WARST,J1/0,J365/25
|
|
|
|
|
stands for Western Argentina Summer Time (WARST), 3 hours behind UTC.
|
2013-09-09 12:39:51 -07:00
|
|
|
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
|
Improve the support for perpetual DST.
Problem reported by Zefram in
<http://mm.icann.org/pipermail/tz/2013-September/020059.html>.
* localtime.c (tzparse): Elide simultaneous entries out of and
into DST if DST goes for an hour more than a year (actually, for
more than the DST offset more than a year). Since this
optimization can elide all entries, avoid looping forever looking
for entries that will never arrive. While we're at it, fix
another portability bug where the code assumed wraparound on
signed integer overflow.
* newtzset.3, tzfile.5: Mention that as an extension to POSIX,
if DST covers the entire year plus the DST offset, it's assumed to
be in effect all year. Give an example.
* zic.c (stringrule): Omit the "J" in January and February,
as this can save a byte or two in the output.
(rule_cmp): New function.
(stringzone): Do a better job of constructing the standard-time
abbreviation when there is perpetual DST. Defer to the new
stringrule to construct the times for perpetual DST.
Fix bug noted by Zefram, which caused a stray hour of standard
time to be inserted in an otherwise perpetual DST.
Previously, this code generated "WARST4WARST,J1/0,J365/24"
for the San Luis example; now it generates "WART4WARST,0/0,J365/25".
2013-09-08 07:49:22 -07:00
|
|
|
.B WART
|
|
|
|
|
is a placeholder.
|
|
|
|
|
.TP
|
2014-06-28 16:35:14 -07:00
|
|
|
.B WGT3WGST,M3.5.0/\*-2,M10.5.0/\*-1
|
2013-09-21 08:35:26 -07:00
|
|
|
stands for Western Greenland Time (WGT) and Western Greenland Summer
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
Time (WGST), 3 hours behind UTC, where clocks follow the EU rules of
|
2014-06-28 16:35:14 -07:00
|
|
|
springing forward on March's last Sunday at 01:00 UTC (\-02:00 local
|
2013-09-09 12:39:51 -07:00
|
|
|
time) and falling back on October's last Sunday at 01:00 UTC
|
2014-06-28 16:35:14 -07:00
|
|
|
(\-01:00 local time).
|
Support time stamps past 2038 in zones like America/Santiago.
This implements a suggestion by Arthur David Olson.
Without this change, zic -v diagnoses problems with several zones
where it cannot compute a POSIX-equivalent TZ setting for time
stamps past 2038, which means these time stamps may be mishandled.
This entails a minor change to the binary tz file format, to allow
a minor extension to the POSIX TZ setting in the binary file,
instead of requiring a pure POSIX TZ setting. The zones fixed by
this change are America/Godthab, America/Santiago, Antarctica/Palmer,
Asia/Gaza, Asia/Hebron, Asia/Jerusalem, Pacific/Easter, and
Pacific/Fiji. The only zone that remains unfixed is
Asia/Tehran, which schedules clock transitions via the
Iranian calendar, something that even the extended TZ
setting cannot represent.
* localtime.c (getrule): Allow transition times to be signed.
* newtzset.3: Describe the extensions to POSIX TZ strings.
Some of these extensions (e.g., hours == 26) were already
implemented but were not documented. Give examples.
* tzfile.5: Document the relaxed restriction on the stored TZ
string; its hours component can be in the range -167..167 rather
than the POSIX-required 0..24. Refer to newtzset(5).
* zic.c (stringoffset): Allow hours to go up to 167.
(stringrule): Be willing to generate hours in the range -167
through 167.
2013-09-05 18:19:12 -07:00
|
|
|
.PP
|
1991-01-17 19:05:13 -05:00
|
|
|
If no
|
|
|
|
|
.I rule
|
|
|
|
|
is present in
|
|
|
|
|
.BR TZ ,
|
|
|
|
|
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.
|
|
|
|
|
.PP
|
|
|
|
|
If the
|
|
|
|
|
.B TZ
|
|
|
|
|
environment variable does not specify a
|
|
|
|
|
.IR tzfile (5)-format
|
|
|
|
|
and cannot be interpreted as a direct specification,
|
|
|
|
|
UTC is used.
|
|
|
|
|
.SH FILES
|
|
|
|
|
.ta \w'/usr/local/etc/zoneinfo/posixrules\0\0'u
|
|
|
|
|
/usr/local/etc/zoneinfo time zone information directory
|
|
|
|
|
.br
|
|
|
|
|
/usr/local/etc/zoneinfo/localtime local time zone file
|
|
|
|
|
.br
|
|
|
|
|
/usr/local/etc/zoneinfo/posixrules used with POSIX-style TZ's
|
|
|
|
|
.br
|
|
|
|
|
/usr/local/etc/zoneinfo/GMT for UTC leap seconds
|
|
|
|
|
.sp
|
|
|
|
|
If
|
|
|
|
|
.B /usr/local/etc/zoneinfo/GMT
|
|
|
|
|
is absent,
|
|
|
|
|
UTC leap seconds are loaded from
|
|
|
|
|
.BR /usr/local/etc/zoneinfo/posixrules .
|
|
|
|
|
.SH SEE ALSO
|
|
|
|
|
getenv(3),
|
|
|
|
|
newctime(3),
|
1996-01-04 12:40:34 -05:00
|
|
|
newstrftime(3),
|
1991-01-17 19:05:13 -05:00
|
|
|
time(2),
|
|
|
|
|
tzfile(5)
|
2009-05-17 14:37:50 -04:00
|
|
|
.\" This file is in the public domain, so clarified as of
|
|
|
|
|
.\" 2009-05-17 by Arthur David Olson.
|