Import the rest of tzcode2004a, the bits needed for the timezone compiler.
Obtained from: ftp://elsie.nci.nih.gov/pub/tzcode2004a.tar.gz
This commit is contained in:
parent
dcd1bc204f
commit
08ebef69b6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/tzcode/dist/; revision=130777
@ -1,4 +1,4 @@
|
||||
@(#)README 7.10
|
||||
@(#)README 7.11
|
||||
|
||||
"What time is it?" -- Richard Deacon as The King
|
||||
"Any time you want it to be." -- Frank Baxter as The Scientist
|
||||
@ -33,8 +33,22 @@ Since POSIX frowns on correct leap second handling, the default behavior of
|
||||
the "zic" command (in the absence of a "-L" option) has been changed to omit
|
||||
leap second information from its output files.
|
||||
|
||||
Be sure to read the comments in "Makefile" and make any changes
|
||||
needed to make things right for your system.
|
||||
Here is a recipe for acquiring, building, installing, and testing the
|
||||
tz distribution on a GNU/Linux or similar host.
|
||||
|
||||
mkdir tz
|
||||
cd tz
|
||||
wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz'
|
||||
gzip -dc tzcode*.tar.gz | tar -xf -
|
||||
gzip -dc tzdata*.tar.gz | tar -xf -
|
||||
|
||||
Be sure to read the comments in "Makefile" and make any changes needed
|
||||
to make things right for your system, especially if you are using some
|
||||
platform other than GNU/Linux. Then run the following commands,
|
||||
substituting your desired installation directory for "$HOME/tzdir":
|
||||
|
||||
make TOPDIR=$HOME/tzdir install
|
||||
$HOME/tzdir/etc/zdump -v America/Los_Angeles
|
||||
|
||||
To use the new functions, use a "-ltz" option when compiling or linking.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
@(#)Theory 7.6
|
||||
@(#)Theory 7.15
|
||||
|
||||
|
||||
----- Outline -----
|
||||
@ -6,12 +6,14 @@
|
||||
Time and date functions
|
||||
Names of time zone regions
|
||||
Time zone abbreviations
|
||||
Calendrical issues
|
||||
Time and time zones on Mars
|
||||
|
||||
|
||||
----- Time and date functions -----
|
||||
|
||||
These time and date functions are upwards compatible with POSIX.1,
|
||||
an international standard for Unix-like systems.
|
||||
an international standard for UNIX-like systems.
|
||||
As of this writing, the current edition of POSIX.1 is:
|
||||
|
||||
Information technology --Portable Operating System Interface (POSIX (R))
|
||||
@ -143,7 +145,7 @@ Points of interest to folks with other systems:
|
||||
since the format of zic's input changed slightly in late 1994,
|
||||
and many vendors still do not support the new input format.
|
||||
|
||||
* The Unix Version 7 "timezone" function is not present in this package;
|
||||
* The UNIX Version 7 "timezone" function is not present in this package;
|
||||
it's impossible to reliably map timezone's arguments (a "minutes west
|
||||
of GMT" value and a "daylight saving time in effect" flag) to a
|
||||
time zone abbreviation, and we refuse to guess.
|
||||
@ -178,11 +180,34 @@ so much the better.
|
||||
|
||||
----- Names of time zone rule files -----
|
||||
|
||||
The names of this package's installed time zone rule files are chosen to
|
||||
help minimize possible future incompatibilities due to political events.
|
||||
Ordinarily, names of countries are not used, to avoid incompatibilities
|
||||
when countries change their name (e.g. Zaire->Congo) or
|
||||
when locations change countries (e.g. Hong Kong from UK colony to China).
|
||||
The time zone rule file naming conventions attempt to strike a balance
|
||||
among the following goals:
|
||||
|
||||
* Uniquely identify every national region where clocks have all
|
||||
agreed since 1970. This is essential for the intended use: static
|
||||
clocks keeping local civil time.
|
||||
|
||||
* Indicate to humans as to where that region is. This simplifes use.
|
||||
|
||||
* Be robust in the presence of political changes. This reduces the
|
||||
number of updates and backward-compatibility hacks. For example,
|
||||
names of countries are ordinarily not used, to avoid
|
||||
incompatibilities when countries change their name
|
||||
(e.g. Zaire->Congo) or when locations change countries
|
||||
(e.g. Hong Kong from UK colony to China).
|
||||
|
||||
* Be portable to a wide variety of implementations.
|
||||
This promotes use of the technology.
|
||||
|
||||
* Use a consistent naming convention over the entire world.
|
||||
This simplifies both use and maintenance.
|
||||
|
||||
This naming convention is not intended for use by inexperienced users
|
||||
to select TZ values by themselves (though they can of course examine
|
||||
and reuse existing settings). Distributors should provide
|
||||
documentation and/or a simple selection interface that explains the
|
||||
names; see the 'tzselect' program supplied with this distribution for
|
||||
one example.
|
||||
|
||||
Names normally have the form AREA/LOCATION, where AREA is the name
|
||||
of a continent or ocean, and LOCATION is the name of a specific
|
||||
@ -193,11 +218,16 @@ and `Pacific/Honolulu'.
|
||||
Here are the general rules used for choosing location names,
|
||||
in decreasing order of importance:
|
||||
|
||||
Use only valid Posix file names. Use only Ascii letters, digits, `.',
|
||||
`-' and `_'. Do not exceed 14 characters or start with `-'.
|
||||
E.g. prefer `Brunei' to `Bandar_Seri_Begawan'.
|
||||
Use only valid POSIX file name components (i.e., the parts of
|
||||
names other than `/'). Within a file name component,
|
||||
use only ASCII letters, `.', `-' and `_'. Do not use
|
||||
digits, as that might create an ambiguity with POSIX
|
||||
TZ strings. A file name component must not exceed 14
|
||||
characters or start with `-'. E.g., prefer `Brunei'
|
||||
to `Bandar_Seri_Begawan'.
|
||||
Include at least one location per time zone rule set per country.
|
||||
One such location is enough.
|
||||
One such location is enough. Use ISO 3166 (see the file
|
||||
iso3166.tab) to help decide whether something is a country.
|
||||
If all the clocks in a country's region have agreed since 1970,
|
||||
don't bother to include more than one location
|
||||
even if subregions' clocks disagreed before 1970.
|
||||
@ -209,9 +239,9 @@ in decreasing order of importance:
|
||||
or regions, so that any future time zone changes do not split
|
||||
locations into different time zones. E.g. prefer `Paris'
|
||||
to `France', since France has had multiple time zones.
|
||||
Use traditional English spelling, e.g. prefer `Rome' to `Roma', and
|
||||
Use mainstream English spelling, e.g. prefer `Rome' to `Roma', and
|
||||
prefer `Athens' to the true name (which uses Greek letters).
|
||||
The Posix file name restrictions encourage this rule.
|
||||
The POSIX file name restrictions encourage this rule.
|
||||
Use the most populous among locations in a country's time zone,
|
||||
e.g. prefer `Shanghai' to `Beijing'. Among locations with
|
||||
similar populations, pick the best-known location,
|
||||
@ -225,13 +255,19 @@ in decreasing order of importance:
|
||||
Use `_' to represent a space.
|
||||
Omit `.' from abbreviations in names, e.g. prefer `St_Helena'
|
||||
to `St._Helena'.
|
||||
Do not change established names if they only marginally
|
||||
violate the above rules. For example, don't change
|
||||
the existing name `Rome' to `Milan' merely because
|
||||
Milan's population has grown to be somewhat greater
|
||||
than Rome's.
|
||||
If a name is changed, put its old spelling in the `backward' file.
|
||||
|
||||
The file `zone.tab' lists the geographical locations used to name
|
||||
time zone rule files.
|
||||
|
||||
Older versions of this package used a different naming scheme,
|
||||
and these older names are still supported.
|
||||
See the file `backwards' for most of these older names
|
||||
See the file `backward' for most of these older names
|
||||
(e.g. `US/Eastern' instead of `America/New_York').
|
||||
The other old-fashioned names still supported are
|
||||
`WET', `CET', `MET', `EET' (see the file `europe'),
|
||||
@ -245,25 +281,39 @@ like `EST' to be compatible with human tradition and POSIX.1.
|
||||
Here are the general rules used for choosing time zone abbreviations,
|
||||
in decreasing order of importance:
|
||||
|
||||
Use abbreviations that consist of 3 or more upper-case Ascii letters,
|
||||
except use "___" for locations while uninhabited.
|
||||
Posix.1 requires at least 3 characters, and the restriction to
|
||||
upper-case Ascii letters follows most traditions.
|
||||
Use abbreviations that consist of three or more ASCII letters.
|
||||
Previous editions of this database also used characters like
|
||||
' ' and '?', but these characters have a special meaning to
|
||||
the shell and cause commands like
|
||||
set `date`
|
||||
to have unexpected effects. In theory, the character set could
|
||||
be !%./@A-Z^_a-z{}, but these tables use only upper-case
|
||||
Ascii letters (and "___").
|
||||
to have unexpected effects.
|
||||
Previous editions of this rule required upper-case letters,
|
||||
but the Congressman who introduced Chamorro Standard Time
|
||||
preferred "ChST", so the rule has been relaxed.
|
||||
|
||||
This rule guarantees that all abbreviations could have
|
||||
been specified by a POSIX.1 TZ string. POSIX.1
|
||||
requires at least three characters for an
|
||||
abbreviation. POSIX.1-1996 says that an abbreviation
|
||||
cannot start with ':', and cannot contain ',', '-',
|
||||
'+', NUL, or a digit. Draft 7 of POSIX 1003.1-200x
|
||||
changes this rule to say that an abbreviation can
|
||||
contain only '-', '+', and alphanumeric characters in
|
||||
the current locale. To be portable to both sets of
|
||||
rules, an abbreviation must therefore use only ASCII
|
||||
letters, as these are the only letters that are
|
||||
alphabetic in all locales.
|
||||
|
||||
Use abbreviations that are in common use among English-speakers,
|
||||
e.g. `EST' for Eastern Standard Time in North America.
|
||||
We assume that applications translate them to other languages
|
||||
as part of the normal localization process; for example,
|
||||
a French application might translate `EST' to `HNE'.
|
||||
|
||||
For zones whose times are taken from a city's longitude, use the
|
||||
traditional xMT notation, e.g. `PMT' for Paris Mean Time.
|
||||
The only name like this in current use is `GMT'.
|
||||
|
||||
If there is no common English abbreviation, abbreviate the English
|
||||
translation of the usual phrase used by native speakers.
|
||||
If this is not available or is a phrase mentioning the country
|
||||
@ -278,8 +328,225 @@ in decreasing order of importance:
|
||||
and then append `T', `ST', etc. as before;
|
||||
e.g. `VLAST' for VLAdivostok Summer Time.
|
||||
|
||||
Use "zzz" for locations while uninhabited. The mnemonic is that
|
||||
these locations are, in some sense, asleep.
|
||||
|
||||
Application writers should note that these abbreviations are ambiguous
|
||||
in practice: e.g. `EST' has a different meaning in Australia than
|
||||
it does in the United States. In new applications, it's often better
|
||||
to use numeric UTC offsets like `-0500' instead of time zone
|
||||
abbreviations like `EST'; this avoids the ambiguity.
|
||||
|
||||
|
||||
----- Calendrical issues -----
|
||||
|
||||
Calendrical issues are a bit out of scope for a time zone database,
|
||||
but they indicate the sort of problems that we would run into if we
|
||||
extended the time zone database further into the past. An excellent
|
||||
resource in this area is Nachum Dershowitz and Edward M. Reingold,
|
||||
<a href="http://emr.cs.uiuc.edu/home/reingold/calendar-book/index.shtml">
|
||||
Calendrical Calculations
|
||||
</a>, Cambridge University Press (1997). Other information and
|
||||
sources are given below. They sometimes disagree.
|
||||
|
||||
|
||||
France
|
||||
|
||||
Gregorian calendar adopted 1582-12-20.
|
||||
French Revolutionary calendar used 1793-11-24 through 1805-12-31,
|
||||
and (in Paris only) 1871-05-06 through 1871-05-23.
|
||||
|
||||
|
||||
Russia
|
||||
|
||||
From Chris Carrier <72157.3334@CompuServe.COM> (1996-12-02):
|
||||
On 1929-10-01 the Soviet Union instituted an ``Eternal Calendar''
|
||||
with 30-day months plus 5 holidays, with a 5-day week.
|
||||
On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the
|
||||
Gregorian calendar while retaining the 6-day week; on 1940-06-27 it
|
||||
reverted to the 7-day week. With the 6-day week the usual days
|
||||
off were the 6th, 12th, 18th, 24th and 30th of the month.
|
||||
(Source: Evitiar Zerubavel, _The Seven Day Circle_)
|
||||
|
||||
|
||||
Mark Brader reported a similar story in "The Book of Calendars", edited
|
||||
by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But:
|
||||
|
||||
From: Petteri Sulonen (via Usenet)
|
||||
Date: 14 Jan 1999 00:00:00 GMT
|
||||
Message-ID: <Petteri.Sulonen-1401991626030001@lapin-kulta.in.helsinki.fi>
|
||||
|
||||
If your source is correct, how come documents between 1929 -- 1940 were
|
||||
still dated using the conventional, Gregorian calendar?
|
||||
|
||||
I can post a scan of a document dated December 1, 1934, signed by
|
||||
Yenukidze, the secretary, on behalf of Kalinin, the President of the
|
||||
Executive Committee of the Supreme Soviet, if you like.
|
||||
|
||||
|
||||
|
||||
Sweden (and Finland)
|
||||
|
||||
From: msb@sq.com (Mark Brader)
|
||||
<a href="news:1996Jul6.012937.29190@sq.com">
|
||||
Subject: Re: Gregorian reform -- a part of locale?
|
||||
</a>
|
||||
Date: 1996-07-06
|
||||
|
||||
In 1700, Denmark made the transition from Julian to Gregorian. Sweden
|
||||
decided to *start* a transition in 1700 as well, but rather than have one of
|
||||
those unsightly calendar gaps :-), they simply decreed that the next leap
|
||||
year after 1696 would be in 1744 -- putting the whole country on a calendar
|
||||
different from both Julian and Gregorian for a period of 40 years.
|
||||
|
||||
However, in 1704 something went wrong and the plan was not carried through;
|
||||
they did, after all, have a leap year that year. And one in 1708. In 1712
|
||||
they gave it up and went back to Julian, putting 30 days in February that
|
||||
year!...
|
||||
|
||||
Then in 1753, Sweden made the transition to Gregorian in the usual manner,
|
||||
getting there only 13 years behind the original schedule.
|
||||
|
||||
(A previous posting of this story was challenged, and Swedish readers
|
||||
produced the following references to support it: "Tiderakning och historia"
|
||||
by Natanael Beckman (1924) and "Tid, en bok om tiderakning och
|
||||
kalendervasen" by Lars-Olof Lode'n (no date was given).)
|
||||
|
||||
|
||||
Grotefend's data
|
||||
|
||||
From: "Michael Palmer" <mpalmer@netcom.com> [with one obvious typo fixed]
|
||||
Subject: Re: Gregorian Calendar (was Re: Another FHC related question
|
||||
Newsgroups: soc.genealogy.german
|
||||
Date: Tue, 9 Feb 1999 02:32:48 -800
|
||||
Message-ID: <199902091032.CAA09644@netcom10.netcom.com>
|
||||
|
||||
The following is a(n incomplete) listing, arranged chronologically, of
|
||||
European states, with the date they converted from the Julian to the
|
||||
Gregorian calendar:
|
||||
|
||||
04/15 Oct 1582 - Italy (with exceptions), Spain, Portugal, Poland (Roman
|
||||
Catholics and Danzig only)
|
||||
09/20 Dec 1582 - France, Lorraine
|
||||
|
||||
21 Dec 1582/
|
||||
01 Jan 1583 - Holland, Brabant, Flanders, Hennegau
|
||||
10/21 Feb 1583 - bishopric of Liege (L"uttich)
|
||||
13/24 Feb 1583 - bishopric of Augsburg
|
||||
04/15 Oct 1583 - electorate of Trier
|
||||
05/16 Oct 1583 - Bavaria, bishoprics of Freising, Eichstedt, Regensburg,
|
||||
Salzburg, Brixen
|
||||
13/24 Oct 1583 - Austrian Oberelsass and Breisgau
|
||||
20/31 Oct 1583 - bishopric of Basel
|
||||
02/13 Nov 1583 - duchy of J"ulich-Berg
|
||||
02/13 Nov 1583 - electorate and city of K"oln
|
||||
04/15 Nov 1583 - bishopric of W"urzburg
|
||||
11/22 Nov 1583 - electorate of Mainz
|
||||
16/27 Nov 1583 - bishopric of Strassburg and the margraviate of Baden
|
||||
17/28 Nov 1583 - bishopric of M"unster and duchy of Cleve
|
||||
14/25 Dec 1583 - Steiermark
|
||||
|
||||
06/17 Jan 1584 - Austria and Bohemia
|
||||
11/22 Jan 1584 - Luzern, Uri, Schwyz, Zug, Freiburg, Solothurn
|
||||
12/23 Jan 1584 - Silesia and the Lausitz
|
||||
22 Jan/
|
||||
02 Feb 1584 - Hungary (legally on 21 Oct 1587)
|
||||
Jun 1584 - Unterwalden
|
||||
01/12 Jul 1584 - duchy of Westfalen
|
||||
|
||||
16/27 Jun 1585 - bishopric of Paderborn
|
||||
|
||||
14/25 Dec 1590 - Transylvania
|
||||
|
||||
22 Aug/
|
||||
02 Sep 1612 - duchy of Prussia
|
||||
|
||||
13/24 Dec 1614 - Pfalz-Neuburg
|
||||
|
||||
1617 - duchy of Kurland (reverted to the Julian calendar in
|
||||
1796)
|
||||
|
||||
1624 - bishopric of Osnabr"uck
|
||||
|
||||
1630 - bishopric of Minden
|
||||
|
||||
15/26 Mar 1631 - bishopric of Hildesheim
|
||||
|
||||
1655 - Kanton Wallis
|
||||
|
||||
05/16 Feb 1682 - city of Strassburg
|
||||
|
||||
18 Feb/
|
||||
01 Mar 1700 - Protestant Germany (including Swedish possessions in
|
||||
Germany), Denmark, Norway
|
||||
30 Jun/
|
||||
12 Jul 1700 - Gelderland, Zutphen
|
||||
10 Nov/
|
||||
12 Dec 1700 - Utrecht, Overijssel
|
||||
|
||||
31 Dec 1700/
|
||||
12 Jan 1701 - Friesland, Groningen, Z"urich, Bern, Basel, Geneva,
|
||||
Turgau, and Schaffhausen
|
||||
|
||||
1724 - Glarus, Appenzell, and the city of St. Gallen
|
||||
|
||||
01 Jan 1750 - Pisa and Florence
|
||||
|
||||
02/14 Sep 1752 - Great Britain
|
||||
|
||||
17 Feb/
|
||||
01 Mar 1753 - Sweden
|
||||
|
||||
1760-1812 - Graub"unden
|
||||
|
||||
The Russian empire (including Finland and the Baltic states) did not
|
||||
convert to the Gregorian calendar until the Soviet revolution of 1917.
|
||||
|
||||
Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen
|
||||
Mittelalters und der Neuzeit_, herausgegeben von Dr. O. Grotefend
|
||||
(Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28.
|
||||
|
||||
|
||||
----- Time and time zones on Mars -----
|
||||
|
||||
Some people have adjusted their work schedules to fit Mars time.
|
||||
Dozens of special Mars watches were built for Jet Propulsion
|
||||
Laboratory workers who kept Mars time during the Mars Exploration
|
||||
Rovers mission (2004). These timepieces look like normal Seikos and
|
||||
Citizens but use Mars seconds rather than terrestrial seconds.
|
||||
|
||||
A Mars solar day is called a "sol" and has a mean period equal to
|
||||
about 24 hours 39 minutes 35.244 seconds in terrestrial time. It is
|
||||
divided into a conventional 24-hour clock, so each Mars second equals
|
||||
about 1.02749125 terrestrial seconds.
|
||||
|
||||
The prime meridian of Mars goes through the center of the crater
|
||||
Airy-0, named in honor of the British astronomer who built the
|
||||
Greenwich telescope that defines Earth's prime meridian. Mean solar
|
||||
time on the Mars prime meridian is called Mars Coordinated Time (MTC).
|
||||
|
||||
Each landed mission on Mars has adopted a different reference for
|
||||
solar time keeping, so there is no real standard for Mars time zones.
|
||||
For example, the Mars Exploration Rover project (2004) defined two
|
||||
time zones "Local Solar Time A" and "Local Solar Time B" for its two
|
||||
missions, each zone designed so that its time equals local true solar
|
||||
time at approximately the middle of the nominal mission. Such a "time
|
||||
zone" is not particularly suited for any application other than the
|
||||
mission itself.
|
||||
|
||||
Many calendars have been proposed for Mars, but none have achieved
|
||||
wide acceptance. Astronomers often use Mars Sol Date (MSD) which is a
|
||||
sequential count of Mars solar days elapsed since about 1873-12-29
|
||||
12:00 GMT.
|
||||
|
||||
The tz database does not currently support Mars time, but it is
|
||||
documented here in the hopes that support will be added eventually.
|
||||
|
||||
Sources:
|
||||
|
||||
Michael Allison and Robert Schmunk,
|
||||
"Technical Notes on Mars Solar Time as Adopted by the Mars24 Sunclock"
|
||||
<http://www.giss.nasa.gov/tools/mars24/help/notes.html> (2004-03-15).
|
||||
|
||||
Jia-Rui Chong, "Workdays Fit for a Martian", Los Angeles Times
|
||||
(2004-01-14), pp A1, A20-A21.
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#ifndef lint
|
||||
#ifndef NOID
|
||||
static char privatehid[] = "@(#)private.h 7.48";
|
||||
static char privatehid[] = "@(#)private.h 7.53";
|
||||
#endif /* !defined NOID */
|
||||
#endif /* !defined lint */
|
||||
|
||||
@ -38,18 +38,30 @@ static char privatehid[] = "@(#)private.h 7.48";
|
||||
#define HAVE_GETTEXT 0
|
||||
#endif /* !defined HAVE_GETTEXT */
|
||||
|
||||
#ifndef HAVE_INCOMPATIBLE_CTIME_R
|
||||
#define HAVE_INCOMPATIBLE_CTIME_R 0
|
||||
#endif /* !defined INCOMPATIBLE_CTIME_R */
|
||||
|
||||
#ifndef HAVE_SETTIMEOFDAY
|
||||
#define HAVE_SETTIMEOFDAY 3
|
||||
#endif /* !defined HAVE_SETTIMEOFDAY */
|
||||
|
||||
#ifndef HAVE_STRERROR
|
||||
#define HAVE_STRERROR 0
|
||||
#define HAVE_STRERROR 1
|
||||
#endif /* !defined HAVE_STRERROR */
|
||||
|
||||
#ifndef HAVE_SYMLINK
|
||||
#define HAVE_SYMLINK 1
|
||||
#endif /* !defined HAVE_SYMLINK */
|
||||
|
||||
#ifndef HAVE_SYS_STAT_H
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#endif /* !defined HAVE_SYS_STAT_H */
|
||||
|
||||
#ifndef HAVE_SYS_WAIT_H
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
#endif /* !defined HAVE_SYS_WAIT_H */
|
||||
|
||||
#ifndef HAVE_UNISTD_H
|
||||
#define HAVE_UNISTD_H 1
|
||||
#endif /* !defined HAVE_UNISTD_H */
|
||||
@ -62,6 +74,11 @@ static char privatehid[] = "@(#)private.h 7.48";
|
||||
#define LOCALE_HOME "/usr/lib/locale"
|
||||
#endif /* !defined LOCALE_HOME */
|
||||
|
||||
#if HAVE_INCOMPATIBLE_CTIME_R
|
||||
#define asctime_r _incompatible_asctime_r
|
||||
#define ctime_r _incompatible_ctime_r
|
||||
#endif /* HAVE_INCOMPATIBLE_CTIME_R */
|
||||
|
||||
/*
|
||||
** Nested includes
|
||||
*/
|
||||
@ -78,6 +95,17 @@ static char privatehid[] = "@(#)private.h 7.48";
|
||||
#include "libintl.h"
|
||||
#endif /* HAVE_GETTEXT - 0 */
|
||||
|
||||
#if HAVE_SYS_WAIT_H - 0
|
||||
#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
|
||||
#endif /* HAVE_SYS_WAIT_H - 0 */
|
||||
|
||||
#ifndef WIFEXITED
|
||||
#define WIFEXITED(status) (((status) & 0xff) == 0)
|
||||
#endif /* !defined WIFEXITED */
|
||||
#ifndef WEXITSTATUS
|
||||
#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
|
||||
#endif /* !defined WEXITSTATUS */
|
||||
|
||||
#if HAVE_UNISTD_H - 0
|
||||
#include "unistd.h" /* for F_OK and R_OK */
|
||||
#endif /* HAVE_UNISTD_H - 0 */
|
||||
@ -98,16 +126,6 @@ static char privatehid[] = "@(#)private.h 7.48";
|
||||
** Workarounds for compilers/systems.
|
||||
*/
|
||||
|
||||
/*
|
||||
** SunOS 4.1.1 cc lacks const.
|
||||
*/
|
||||
|
||||
#ifndef const
|
||||
#ifndef __STDC__
|
||||
#define const
|
||||
#endif /* !defined __STDC__ */
|
||||
#endif /* !defined const */
|
||||
|
||||
/*
|
||||
** SunOS 4.1.1 cc lacks prototypes.
|
||||
*/
|
||||
@ -262,8 +280,15 @@ char * scheck P((const char *string, const char *format));
|
||||
#define TZ_DOMAIN "tz"
|
||||
#endif /* !defined TZ_DOMAIN */
|
||||
|
||||
#if HAVE_INCOMPATIBLE_CTIME_R
|
||||
#undef asctime_r
|
||||
#undef ctime_r
|
||||
char *asctime_r P((struct tm const *, char *));
|
||||
char *ctime_r P((time_t const *, char *));
|
||||
#endif /* HAVE_INCOMPATIBLE_CTIME_R */
|
||||
|
||||
/*
|
||||
** UNIX was a registered trademark of UNIX System Laboratories in 1993.
|
||||
** UNIX was a registered trademark of The Open Group in 2003.
|
||||
*/
|
||||
|
||||
#endif /* !defined PRIVATE_H */
|
||||
|
278
usr.sbin/zic/tz-art.htm
Normal file
278
usr.sbin/zic/tz-art.htm
Normal file
@ -0,0 +1,278 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content='text/html; charset="US-ASCII"' />
|
||||
<title>Time and the Arts</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Time and the Arts</h1>
|
||||
<address>
|
||||
@(#)tz-art.htm 7.53
|
||||
</address>
|
||||
<p>
|
||||
Please send corrections to this web page to the
|
||||
<a href="mailto:tz@elsie.nci.nih.gov">time zone mailing list</a>.</p>
|
||||
<p>
|
||||
See also <a href="tz-link.htm">Sources for Time Zone and Daylight Saving Time Data</a>.</p>
|
||||
<hr />
|
||||
<p>
|
||||
Data on recordings of "Save That Time," Russ Long, Serrob Publishing, BMI:</p>
|
||||
<table>
|
||||
<tr><td>Artist</td><td>Karrin Allyson</td></tr>
|
||||
<tr><td>CD</td><td>I Didn't Know About You</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1993</td></tr>
|
||||
<tr><td>Label</td><td>Concord Jazz, Inc.</td></tr>
|
||||
<tr><td>ID</td><td>CCD-4543</td></tr>
|
||||
<tr><td>Track Time</td><td>3:44</td></tr>
|
||||
<tr><td>Personnel</td><td>Karrin Allyson, vocal;
|
||||
Russ Long, piano;
|
||||
Gerald Spaits, bass;
|
||||
Todd Strait, drums</td></tr>
|
||||
<tr><td>Notes</td><td>CD notes "additional lyric by Karrin Allyson;
|
||||
arranged by Russ Long and Karrin Allyson"</td></tr>
|
||||
<tr><td>ADO Rating</td><td>1 star</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=A1fdovw9ta92k">AMG Rating</a></td><td>4 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3.5 stars</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Kevin Mahogany</td></tr>
|
||||
<tr><td>CD</td><td>Double Rainbow</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1993</td></tr>
|
||||
<tr><td>Label</td><td>Enja Records</td></tr>
|
||||
<tr><td>ID</td><td>ENJ-7097 2</td></tr>
|
||||
<tr><td>Track Time</td><td>6:27</td></tr>
|
||||
<tr><td>Personnel</td><td>Kevin Mahogany, vocal;
|
||||
Kenny Barron, piano;
|
||||
Ray Drummond, bass;
|
||||
Ralph Moore, tenor saxophone;
|
||||
Lewis Nash, drums</td></tr>
|
||||
<tr><td>ADO Rating</td><td>1.5 stars</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=Akikbikzjbb19">AMG Rating</a></td><td>3 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3 stars</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Joe Williams</td></tr>
|
||||
<tr><td>CD</td><td>Here's to Life</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1994</td></tr>
|
||||
<tr><td>Label</td><td>Telarc International Corporation</td></tr>
|
||||
<tr><td>ID</td><td>CD-83357</td></tr>
|
||||
<tr><td>Track Time</td><td>3:58</td></tr>
|
||||
<tr><td>Personnel</td><td>Joe Williams, vocal
|
||||
The Robert Farnon [39 piece] Orchestra</td></tr>
|
||||
<tr><td>Notes</td><td>This CD is also available as part of a 3-CD package from
|
||||
Telarc, "Triple Play" (CD-83461)</td></tr>
|
||||
<tr><td>ADO Rating</td><td>black dot</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=Amyyvad6kt8w1">AMG Rating</a></td><td>2 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3 stars</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Charles Fambrough</td></tr>
|
||||
<tr><td>CD</td><td>Keeper of the Spirit</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1995</td></tr>
|
||||
<tr><td>Label</td><td>AudioQuest Music</td></tr>
|
||||
<tr><td>ID</td><td>AQ-CD1033</td></tr>
|
||||
<tr><td>Track Time</td><td>7:07</td></tr>
|
||||
<tr><td>Personnel</td><td>Charles Fambrough, bass;
|
||||
Joel Levine, tenor recorder;
|
||||
Edward Simon, piano;
|
||||
Lenny White, drums;
|
||||
Marion Simon, percussion</td></tr>
|
||||
<tr><td>Notes</td><td>On-line information and samples available at
|
||||
<a href="http://wwmusic.com/~music/audioq/rel/1033.html">http://wwmusic.com/~music/audioq/rel/1033.html</a></td></tr>
|
||||
<tr><td>ADO Rating</td><td>2 stars</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=A5rkcikcjbb89">AMG Rating</a></td><td>unrated</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3 stars</td></tr>
|
||||
</table>
|
||||
<hr />
|
||||
<p>Also of note:</p>
|
||||
<table>
|
||||
<tr><td>Artist</td><td>Holly Cole Trio</td></tr>
|
||||
<tr><td>CD</td><td>Blame It On My Youth</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1992</td></tr>
|
||||
<tr><td>Label</td><td>Manhattan</td></tr>
|
||||
<tr><td>ID</td><td>CDP 7 97349 2</td></tr>
|
||||
<tr><td>Total Time</td><td>37:45</td></tr>
|
||||
<tr><td>Personnel</td><td>Holly Cole, voice;
|
||||
Aaron Davis, piano;
|
||||
David Piltch, string bass</td></tr>
|
||||
<tr><td>Notes</td><td>Lyrical reference to "Eastern Standard Time" in
|
||||
Tom Waits' "Purple Avenue"</td></tr>
|
||||
<tr><td>ADO Rating</td><td>2.5 stars</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=A3a9ds37ya3dg">AMG Rating</a></td><td>3 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>unrated</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Milt Hinton</td></tr>
|
||||
<tr><td>CD</td><td>Old Man Time</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1990</td></tr>
|
||||
<tr><td>Label</td><td>Chiaroscuro</td></tr>
|
||||
<tr><td>ID</td><td>CR(D) 310</td></tr>
|
||||
<tr><td>Total Time</td><td>149:38 (two CDs)</td></tr>
|
||||
<tr><td>Personnel</td><td>Milt Hinton, bass;
|
||||
Doc Cheatham, Dizzy Gillespie, Clark Terry, trumpet;
|
||||
Al Grey, trombone;
|
||||
Eddie Barefield, Joe Camel (Flip Phillips), Buddy Tate,
|
||||
clarinet and saxophone;
|
||||
John Bunch, Red Richards, Norman Simmons, Derek Smith,
|
||||
Ralph Sutton, piano;
|
||||
Danny Barker, Al Casey, guitar;
|
||||
Gus Johnson, Gerryck King, Bob Rosengarden, Jackie Williams,
|
||||
drums;
|
||||
Lionel Hampton, vibraphone;
|
||||
Cab Calloway, Joe Williams, vocal;
|
||||
Buck Clayton, arrangements</td></tr>
|
||||
<tr><td>Notes</td><td>tunes include Old Man Time, Time After Time,
|
||||
Sometimes I'm Happy,
|
||||
A Hot Time in the Old Town Tonight,
|
||||
Four or Five Times, Now's the Time,
|
||||
Time on My Hands, This Time It's Us,
|
||||
and Good Time Charlie
|
||||
On-line samples available at
|
||||
<a href="http://www.chiaroscurojazz.com/albuminfo.php4?albumid=49">http://www.chiaroscurojazz.com/albuminfo.php3?albumid=49</a></td></tr>
|
||||
<tr><td>ADO Rating</td><td>3 stars</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=A1cbyxdab8ola">AMG Rating</a></td><td>4.5 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3 stars</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Alan Broadbent</td></tr>
|
||||
<tr><td>CD</td><td>Pacific Standard Time</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1995</td></tr>
|
||||
<tr><td>Label</td><td>Concord Jazz, Inc.</td></tr>
|
||||
<tr><td>ID</td><td>CCD-4664</td></tr>
|
||||
<tr><td>Total Time</td><td>62:42</td></tr>
|
||||
<tr><td>Personnel</td><td>Alan Broadbent, piano;
|
||||
Putter Smith, Bass;
|
||||
Frank Gibson, Jr., drums</td></tr>
|
||||
<tr><td>Notes</td><td>The CD cover features an analemma for equation-of-time fans</td></tr>
|
||||
<tr><td>ADO Rating</td><td>1 star</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=Asl8zefuk8gfo">AMG Rating</a></td><td>4 stars</td></tr>
|
||||
<tr><td>Penguin Rating</td><td>3.5 stars</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Anthony Braxton/Richard Teitelbaum</td></tr>
|
||||
<tr><td>CD</td><td>Silence/Time Zones</td></tr>
|
||||
<tr><td>Copyright Date</td><td>1996</td></tr>
|
||||
<tr><td>Label</td><td>Black Lion</td></tr>
|
||||
<tr><td>ID</td><td>BLCD 760221</td></tr>
|
||||
<tr><td>Total Time</td><td>72:58</td></tr>
|
||||
<tr><td>Personnel</td><td>Anthony Braxton, sopranino and alto saxophones,
|
||||
contrebasse clarinet, miscellaneous instruments;
|
||||
Leo Smith, trumpet and miscellaneous instruments;
|
||||
Leroy Jenkins, violin and miscellaneous instruments;
|
||||
Richard Teitelbaum, modular moog and micromoog synthesizer</td></tr>
|
||||
<tr><td>ADO Rating</td><td>black dot</td></tr>
|
||||
<tr><td><a href="http://www.allmusic.com/cg/amg.dll?p=amg&sql=A5bkvu3xjan1k">AMG Rating</a></td><td>unrated</td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Artist</td><td>Jules Verne</td></tr>
|
||||
<tr><td>Book</td><td>Le Tour du Monde en Quatre-Vingts Jours
|
||||
(Around the World in Eighty Days)</td></tr>
|
||||
<tr><td>Notes</td><td>Wall-clock time plays a central role in the plot.
|
||||
European readers of the 1870s clearly held the U.S. press in
|
||||
deep contempt; the protagonists cross the U.S. without once
|
||||
reading a paper.
|
||||
An on-line French-language version of the book
|
||||
"with illustrations from the original 1873 French-language edition"
|
||||
is available at
|
||||
<a href="http://fourmilab.ch/etexts/www/tdm80j">http://fourmilab.ch/etexts/www/tdm80j</a>
|
||||
An on-line English-language translation of the book is available at
|
||||
<a href="http://www.literature.org/Works/Jules-Verne/eighty">http://www.literature.org/Works/Jules-Verne/eighty</a></td></tr>
|
||||
<tr><td> </td></tr>
|
||||
<tr><td>Film</td><td>Bell Science - About Time</td></tr>
|
||||
<tr><td>Notes</td><td>The Frank Baxter/Richard Deacon extravaganza
|
||||
Information on ordering is available at
|
||||
<a href="http://www.videoflicks.com/VF2/1035/1035893.ihtml">http://www.videoflicks.com/VF2/1035/1035893.ihtml</a></td></tr>
|
||||
</table>
|
||||
<hr />
|
||||
<ul>
|
||||
<li>
|
||||
An episode of "The Adventures of Superman" entitled "The Mysterious
|
||||
Cube," first aired 1958-02-24, had Superman convincing the controllers
|
||||
of WWV to broadcast time signals five minutes ahead of actual time;
|
||||
doing so got a crook trying to beat the statute of limitations to
|
||||
emerge a bit too early from the titular enclosure.
|
||||
</li>
|
||||
<li>
|
||||
The 1960s ITC television series "The Prisoner" included an episode
|
||||
entitled "The Chimes of Big Ben" in which our protagonist tumbled to
|
||||
the fraudulent nature of a Poland-to-England escape upon hearing "Big
|
||||
Ben" chiming on Polish local time.
|
||||
</li>
|
||||
<li>
|
||||
The series "Seinfeld" included an episode entitled "The Susie," first
|
||||
broadcast 1997-02-13, in which Kramer decides that daylight saving time
|
||||
isn't coming fast enough, so he sets his watch ahead an hour.
|
||||
</li>
|
||||
<li>
|
||||
The syndicated comic strip "Dilbert" featured an all-too-rare example of
|
||||
time zone humor on 1998-03-14.
|
||||
</li>
|
||||
<li>
|
||||
Surrealist artist Guy Billout's work "Date Line" appeared on page 103
|
||||
of the 1999-11 Atlantic Monthly.
|
||||
</li>
|
||||
<li>
|
||||
"Gloom, Gloom, Go Away" by Walter Kirn appeared on page 106 of Time
|
||||
Magazine's 2002-11-11 issue; among other things, it proposed
|
||||
year-round DST as a way of lessening wintertime despair.
|
||||
</li>
|
||||
<li>
|
||||
The "20 Hours in America" episode of "The West Wing," first aired 2002-09-25,
|
||||
saw White House staffers stranded in Indiana; they thought they had time to
|
||||
catch Air Force One but were done in by intra-Indiana local time changes.
|
||||
</li>
|
||||
<li>
|
||||
"In what time zone would you find New York City?" was a $200 question on
|
||||
the 1999-11-13 United States airing of "Who Wants to Be a Millionaire?"
|
||||
"In 1883, what industry led the movement to divide the U.S. into four time
|
||||
zones?" was a $32,000 question on the 2001-05-23 United States airing of
|
||||
"Who Wants to Be a Millionaire?" At this rate, the million-dollar time-zone
|
||||
question should have been asked 2002-06-04.
|
||||
</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li>
|
||||
"We're been using the five-cent nickle in this country since 1492.
|
||||
Now that's pretty near 100 years, daylight savings [sic]."
|
||||
(Groucho Marx as Captain Spaulding in "Animal Crackers", 1930,
|
||||
as noted by Will Fitzerald, wfitzgerald@ameritech.net)
|
||||
</li>
|
||||
<li>
|
||||
"Good news."
|
||||
"What did they do? Extend Daylight Saving Time year round?"
|
||||
(Professional tanner George Hamilton, in dialog from a
|
||||
May, 1999 episode of the syndicated television series "Baywatch")
|
||||
</li>
|
||||
<li>
|
||||
"A fundamental belief held by Americans is that if you are on land, you
|
||||
cannot be killed by a fish...So most Americans remain on land, believing
|
||||
they're safe. Unfortunately, this belief—like so many myths, such as that
|
||||
there's a reason for 'Daylight Saving Time'—is false."
|
||||
(Dave Barry column, 2000-07-02)
|
||||
</li>
|
||||
<li>
|
||||
"I once had sex for an hour and five minutes, but that was on the day
|
||||
when you turn the clocks ahead."
|
||||
(Garry Shandling, 52nd Annual Emmys, 2000-09-10)
|
||||
</li>
|
||||
<li>
|
||||
"Would it impress you if I told you I invented Daylight Savings Time?"
|
||||
("Sahjhan" to "Lilah" in dialog from the "Loyalty" episode of "Angel,"
|
||||
originally aired 2002-02-25)
|
||||
</li>
|
||||
<li>
|
||||
"I thought you said Tulsa was a three hour flight."
|
||||
"Well, you're forgetting about the time difference."
|
||||
("Chandler" and "Joey" in dialog from the episode of "Friends" first
|
||||
aired 2002-12-05)
|
||||
</li>
|
||||
<li>
|
||||
"Is that a pertinent fact,
|
||||
or are you trying to dazzle me with your command of time zones?"
|
||||
(Kelsey Grammer as "Frasier Crane")
|
||||
</li>
|
||||
<li>
|
||||
"Don't worry about the world coming to an end today.
|
||||
It is already tomorrow in Australia."
|
||||
(Charles M. Schulz, provided by Steve Summit)
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
443
usr.sbin/zic/tz-link.htm
Normal file
443
usr.sbin/zic/tz-link.htm
Normal file
@ -0,0 +1,443 @@
|
||||
<?xml version="1.0" encoding="US-ASCII"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>Sources for Time Zone and Daylight Saving Time Data</title>
|
||||
<link rel="schema.DC" href="http://purl.org/DC/elements/1.1/" />
|
||||
<meta http-equiv="Content-type" content='text/html; charset="US-ASCII"' />
|
||||
<meta name="DC.Creator" content="Eggert, Paul" />
|
||||
<meta name="DC.Contributor" content="Olson, Arthur David" />
|
||||
<meta name="DC.Date" content="2004-05-24" />
|
||||
<meta name="DC.Description"
|
||||
content="Sources of information about time zones and daylight saving time" />
|
||||
<meta name="DC.Identifier" content="http://www.twinsun.com/tz/tz-link.htm" />
|
||||
<meta name="Keywords"
|
||||
content="database,daylight saving,DST,time zone,timezone,tz,zoneinfo" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Sources for Time Zone and Daylight Saving Time Data</h1>
|
||||
<address>
|
||||
@(#)tz-link.htm 7.42
|
||||
</address>
|
||||
<p>
|
||||
Please send corrections to this web page to the
|
||||
<a href="mailto:tz@elsie.nci.nih.gov">time zone mailing list</a>.
|
||||
</p>
|
||||
<h2>The <code>tz</code> database</h2>
|
||||
<p>
|
||||
The public-domain time zone database contains code and data
|
||||
that represent the history of local time
|
||||
for many representative locations around the globe.
|
||||
It is updated periodically to reflect changes made by political bodies
|
||||
to UTC offsets and daylight-saving rules.
|
||||
This database (often called <code>tz</code> or <code>zoneinfo</code>)
|
||||
is used by several implementations,
|
||||
including
|
||||
<a href="http://www.gnu.org/software/libc/">the GNU C Library</a> used in
|
||||
<a href="http://www.linux.org/">GNU/Linux</a>,
|
||||
<a href="http://www.freebsd.org/">FreeBSD</a>,
|
||||
<a href="http://www.netbsd.org/">NetBSD</a>,
|
||||
<a href="http://www.openbsd.org/">OpenBSD</a>,
|
||||
<a href="http://www.cygwin.com/">Cygwin</a>,
|
||||
<a href="http://www.delorie.com/djgpp/">DJGPP</a>,
|
||||
<a href="http://www.hp.com/products1/unix/operating/">HP-UX</a>,
|
||||
<a href="http://www.sgi.com/developers/technology/irix/">IRIX</a>,
|
||||
<a href="http://www.apple.com/macosx/">Mac OS X</a>,
|
||||
<a href="http://h71000.www7.hp.com/">OpenVMS</a>,
|
||||
<a href="http://wwws.sun.com/software/solaris/">Solaris</a>,
|
||||
<a href="http://www.tru64unix.compaq.com/">Tru64</a>, and
|
||||
<a href="http://www.sco.com/products/unixware/">UnixWare</a>.</p>
|
||||
<p>
|
||||
Each location in the database represents a national region where all
|
||||
clocks keeping local time have agreed since 1970.
|
||||
Locations are identified by continent or ocean and then by the name of
|
||||
the location, which is typically the largest city within the region.
|
||||
For example, <code>America/New_York</code>
|
||||
represents most of the US eastern time zone;
|
||||
<code>America/Indianapolis</code> represents most of Indiana, which
|
||||
uses eastern time without daylight saving time (DST);
|
||||
<code>America/Detroit</code> represents most of Michigan, which uses
|
||||
eastern time but with different DST rules in 1975;
|
||||
and other entries represent smaller regions like Starke County,
|
||||
Kentucky, which switched from central to eastern time in 1991.
|
||||
To use the database, set the <code>TZ</code> environment variable to
|
||||
the location's full name, e.g., <code>TZ="America/New_York"</code>.</p>
|
||||
<p>
|
||||
In the <code>tz</code> database's
|
||||
<a href="ftp://elsie.nci.nih.gov/pub/">FTP distribution</a>,
|
||||
the code is in the file <code>tzcode<var>C</var>.tar.gz</code>,
|
||||
where <code><var>C</var></code> is the code's version;
|
||||
similarly, the data are in <code>tzdata<var>D</var>.tar.gz</code>,
|
||||
where <code><var>D</var></code> is the data's version.
|
||||
The following shell commands download
|
||||
these files to a GNU/Linux or similar host; see the downloaded
|
||||
<code>README</code> file for what to do next.</p>
|
||||
<pre style="margin-left: 2em"><code><a href="http://www.gnu.org/software/wget/">wget</a> 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz'
|
||||
<a href="http://www.gnu.org/software/gzip/">gzip</a> -dc tzcode*.tar.gz | <a href="http://www.gnu.org/software/tar/">tar</a> -xf -
|
||||
gzip -dc tzdata*.tar.gz | tar -xf -
|
||||
</code></pre>
|
||||
<p>
|
||||
The code lets you compile the <code>tz</code> source files into
|
||||
machine-readable binary files, one for each location. It also lets
|
||||
you read a <code>tz</code> binary file and interpret time stamps for that
|
||||
location.</p>
|
||||
<p>
|
||||
The data are by no means authoritative. If you find errors, please
|
||||
send changes to the <a href="mailto:tz@elsie.nci.nih.gov">time zone
|
||||
mailing list</a>. You can also <a
|
||||
href="mailto:tz-request@elsie.nci.nih.gov">subscribe</a> to the
|
||||
mailing list, retrieve the <a
|
||||
href="ftp://elsie.nci.nih.gov/pub/tzarchive.gz">archive of old
|
||||
messages</a> (in gzip compressed format), or retrieve <a
|
||||
href="ftp://munnari.oz.au/pub/oldtz/">archived older versions of code
|
||||
and data</a>.</p>
|
||||
<p>
|
||||
The Web has several other sources for time zone and daylight saving time data.
|
||||
Here are some recent links that may be of interest.
|
||||
</p>
|
||||
<h2>Web pages using recent versions of the <code>tz</code> database</h2>
|
||||
<ul>
|
||||
<li><a href="http://twiki.org/cgi-bin/xtra/tzdate">Date and Time Gateway</a>
|
||||
is a text-based point-and-click interface to tables of current time
|
||||
throughout the world.</li>
|
||||
<li>Fancier web interfaces, roughly in ascending order of complexity, include:
|
||||
<ul>
|
||||
<li><a href="http://www.hilink.com.au/times/">Local Times Around the
|
||||
World</a></li>
|
||||
<li><a href="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current Time in 1000 Places</a></li>
|
||||
<li><a href="http://timezoneconverter.com/">Time Zone Converter</a></li>
|
||||
</ul></li>
|
||||
<li><a href="http://www.holidayfestival.com/">The Worldwide Holiday
|
||||
& Festival Site</a> lists DST-related clock changes along with
|
||||
holidays.</li>
|
||||
<li><a href="http://www.timeanddate.com/worldclock/">The World Clock -
|
||||
Time Zones</a>
|
||||
is a web interface to a time zone database derived from
|
||||
<code>tz</code>'s.</li>
|
||||
</ul>
|
||||
<h2>Other time zone database formats</h2>
|
||||
<ul>
|
||||
<li>The <a href="ftp://ftp.rfc-editor.org/in-notes/rfc2445.txt">
|
||||
Internet Calendaring and Scheduling Core Object Specification
|
||||
(iCalendar)</a> specification published by the <a
|
||||
href="http://www.ietf.org/html.charters/calsch-charter.html">IETF
|
||||
Calendaring and Scheduling Working Group (calsch)</a> covers time zone
|
||||
data; see its VTIMEZONE calendar component.</li>
|
||||
<li>The <a
|
||||
href="http://lists.w3.org/Archives/Public/www-rdf-calendar/">www-rdf-calendar</a>
|
||||
list discusses <a href="http://www.w3.org/RDF/">RDF</a>-based calendar
|
||||
and group scheduling systems, and has a <a
|
||||
href="http://www.w3.org/2002/12/cal/#tzd">workspace on time zone
|
||||
data</a> converted from <code>tz</code>. An earlier <a
|
||||
href="http://www.w3.org/2000/01/foo">schema</a> was sketched out by <a
|
||||
href="http://www.w3.org/People/Berners-Lee/">Tim Berners-Lee</a>.</li>
|
||||
<li><a
|
||||
href="http://www.calsch.org/ietf/archives/draft-ietf-calsch-many-xcal-02.txt">XCal</a>
|
||||
was a draft <a href="http://www.w3.org/XML/">XML</a> document type
|
||||
definition that corresponded to iCalendar.</li>
|
||||
</ul>
|
||||
<h2>Other <code>tz</code> compilers</h2>
|
||||
<ul>
|
||||
<li><a href="http://www.dachaplin.dsl.pipex.com/vzic">Vzic iCalendar
|
||||
Timezone Converter</a> describes a program Vzic that compiles
|
||||
<code>tz</code> source into iCalendar-compatible VTIMEZONE files.
|
||||
Vzic is freely
|
||||
available under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU
|
||||
General Public License (GPL)</a>.</li>
|
||||
<li><a
|
||||
href="http://search.cpan.org/dist/DateTime-TimeZone/">DateTime::TimeZone</a>
|
||||
contains a script <code>parse_olson</code> that compiles
|
||||
<code>tz</code> source into <a href="http://www.perl.org/">Perl</a>
|
||||
modules. It is part of the Perl <a
|
||||
href="http://datetime.perl.org/">DateTime Project</a>, which is freely
|
||||
available under both the GPL and the Perl <a
|
||||
href="http://www.perl.com/language/misc/Artistic.html">Artistic
|
||||
License</a>. DateTime::TimeZone also contains a script
|
||||
<code>tests_from_zdump</code> that generates test cases for each clock
|
||||
transition in the <code>tz</code> database.</li>
|
||||
<li><a href="http://oss.software.ibm.com/icu/">International Components for
|
||||
Unicode (ICU)</a> contains a C/C++ library for internationalization that
|
||||
has a compiler from <samp>tz</samp> source into an ICU-specific format.
|
||||
ICU is freely available under a BSD-style license.</li>
|
||||
<li><a href="http://joda-time.sourceforge.net/">Joda Time - Java date
|
||||
and time API</a> contains a class
|
||||
<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
|
||||
<code>tz</code> source into a Joda-specific binary format. Joda Time
|
||||
is freely available under a BSD-style license.</li>
|
||||
</ul>
|
||||
<h2>Other <code>tz</code> binary file readers</h2>
|
||||
<ul>
|
||||
<li>The <a href="http://www.gnu.org/software/libc/">GNU C Library</a>
|
||||
has an independent, thread-safe implementation of
|
||||
a <code>tz</code> binary file reader.
|
||||
This library is freely available under the
|
||||
<a href="http://www.gnu.org/copyleft/lesser.html">
|
||||
GNU Lesser General Public License (LGPL)</a>,
|
||||
and is widely used in GNU/Linux systems.</li>
|
||||
<li><a href="http://www.bmsi.com/java/#TZ">ZoneInfo.java</a>
|
||||
is a <code>tz</code> binary file reader written in Java.
|
||||
It is freely available under the GNU LGPL.</li>
|
||||
<li><a href="http://s.keim.free.fr/tz/doc.html">Python time zones</a>
|
||||
is a <code>tz</code> binary file reader written in <a
|
||||
href="http://www.python.org/">Python</a>. It is freely available
|
||||
under a BSD-style license.</li>
|
||||
</ul>
|
||||
<h2>Other <code>tz</code>-based time zone conversion software</h2>
|
||||
<ul>
|
||||
<li><a href="http://java.sun.com/">Sun Java</a> releases since 1.4
|
||||
contain a copy of a recent <samp>tz</samp> database in a Java-specific
|
||||
format.</li>
|
||||
<li><a
|
||||
href="http://www1.tip.nl/~t876506/AboutTimeZonesHC.html">HyperCard
|
||||
time zones calculator</a> is a HyperCard stack.</li>
|
||||
<li><a
|
||||
href="http://www.cimmyt.org/timezone/">World Time Explorer</a> is a
|
||||
Microsoft Windows program.</li>
|
||||
</ul>
|
||||
<h2>Other time zone databases</h2>
|
||||
<ul>
|
||||
<li><a href="http://www.astro.com/cgi-bin/atlw3/aq.cgi?lang=e">Atlas Query
|
||||
- Astrodienst</a> is Astrodienst's Web version of Shanks's
|
||||
excellent time zone history atlases published in both <a
|
||||
href="http://astrocom.com/software/pcatlas.php">computer</a> and <a
|
||||
href="http://astrocom.com/books/xrefa.php#SHANKS">book</a> form by <a
|
||||
href="http://astrocom.com/">Astro Communications Services</a>.</li>
|
||||
<li><a href="http://worldtime.com/">WORLDTIME: interactive atlas,
|
||||
time info, public holidays</a>
|
||||
contains information on local time, sunrise and sunset,
|
||||
and public holidays in several hundred cities around the world.</li>
|
||||
<li><a href="http://www.worldtimeserver.com/">World Time Server</a>
|
||||
is another time zone database.</li>
|
||||
<li><a href="http://tycho.usno.navy.mil/tzones.html">World Time Zones</a>
|
||||
contains data from the Time Service Department of the US Naval Observatory
|
||||
(USNO), used as the source
|
||||
for the <code>usno*</code> files in the <code>tz</code> distribution.</li>
|
||||
<li><a href="http://www.airportcitycodes.com/aaa/">Airlines, Airplanes
|
||||
and Airports</a> lists current standard times for thousands of
|
||||
airports around the world. This seems to be derived from
|
||||
the <a href="http://www.iata.org/sked/publications/">Standard
|
||||
Schedules Information Manual (SSIM)</a> of the
|
||||
the <a href="http://www.iata.org/">International Air Transport
|
||||
Association</a>,
|
||||
which gives current time zone rules for
|
||||
all the airports served by commercial aviation.</li>
|
||||
</ul>
|
||||
<h2>Maps</h2>
|
||||
<ul>
|
||||
<li>The <a href="http://www.odci.gov/">United States Central
|
||||
Intelligence Agency (CIA)</a> publishes a <a
|
||||
href="http://www.odci.gov/cia/publications/factbook/reference_maps/pdf/time_zones.pdf">time
|
||||
zone map</a>; the
|
||||
<a
|
||||
href="http://www.lib.utexas.edu/maps/world.html">Perry-Castañeda
|
||||
Library Map Collection</a>
|
||||
of the University of Texas at Austin has copies of
|
||||
recent editions.
|
||||
The pictorial quality is good,
|
||||
but the maps do not indicate summer time,
|
||||
and parts of the data are a few years out of date.</li>
|
||||
<li><a href="http://worldtimezone.com/">World timezones map with
|
||||
current time</a>
|
||||
has several fancy time zone maps; it covers Russia particularly well.
|
||||
The maps' pictorial quality is not quite as good as the CIA's
|
||||
but the maps are more up to date.</li>
|
||||
</ul>
|
||||
<h2>Time zone boundaries</h2>
|
||||
<ul>
|
||||
<li><a href="http://home-4.tiscali.nl/~t876506/Multizones.html">Time
|
||||
zone boundaries for multizone countries</a> summarizes legal
|
||||
boundaries between time zones within countries.</li>
|
||||
<li>Manifold.net's <a
|
||||
href="http://www.manifold.net/download/freemaps.html">Free Maps and
|
||||
GIS Data</a> includes a Manifold-format map of world time zone
|
||||
boundaries distributed under the GPL. The GeoCommunity's <a
|
||||
href="http://software.geocomm.com/data/intl_timezones.html">International
|
||||
Time Zones</a> publishes the same data in other formats.</li>
|
||||
<li>The US Geological Survey's National Atlas of the United States
|
||||
publishes the <a href="http://www.nationalatlas.gov/timeznm.html">Time
|
||||
Zones of the United States</a> in the public domain.</li>
|
||||
<li>The GeoCommunity lists several commercial sources for <a
|
||||
href="http://spatialnews.geocomm.com/features/timezones/">International
|
||||
Time Zones and Time Zone Data</a>.</li>
|
||||
</ul>
|
||||
<h2>Civil time concepts and history</h2>
|
||||
<ul>
|
||||
<li><a href="http://physics.nist.gov/time">A Walk through Time</a>
|
||||
surveys the evolution of timekeeping.</li>
|
||||
<li><a href="http://webexhibits.org/daylightsaving/">About Daylight
|
||||
Saving Time - History, rationale, laws and dates</a>
|
||||
is an overall history of DST.</li>
|
||||
<li><a href="http://toi.iriti.cnr.it/">The
|
||||
Time of Internet</a>
|
||||
describes time zones and daylight saving time,
|
||||
with diagrams.
|
||||
The time zone map is out of date, however.</li>
|
||||
<li><a href="http://www.phys.uu.nl/~vgent/idl/idl.htm">A History of
|
||||
the International Date Line</a> tells the story of the most important
|
||||
time zone boundary.</li>
|
||||
<li><a href="http://www.statoids.com/tconcept.html">Basic Time
|
||||
Zone Concepts</a> discusses terminological issues behind time zones.</li>
|
||||
</ul>
|
||||
<h2>National histories of legal time</h2>
|
||||
<dl>
|
||||
<dt>Australia</dt>
|
||||
<dd>The Community Relations Division of the New South Wales (NSW)
|
||||
Attorney General's Department maintains a <a
|
||||
href="http://www.lawlink.nsw.gov.au/crd.nsf/pages/time2">history of
|
||||
daylight saving in NSW</a>.</dd>
|
||||
<dt>Austria</dt>
|
||||
<dd>The Federal Office of Metrology and Surveying publishes a
|
||||
table of <a href="http://www.metrologie.at/pdf/sommerzeit.pdf"
|
||||
hreflang="de">daylight saving time in Austria (in German)</a>.</dd>
|
||||
<dt>Belgium</dt>
|
||||
<dd>The Royal Observatory of Belgium maintains a table of <a
|
||||
href="http://www.astro.oma.be/GENERAL/INFO/nli001a.html"
|
||||
hreflang="nl">time in Belgium (in Dutch)</a>.</dd>
|
||||
<dt>Brazil</dt>
|
||||
<dd>The Time Service Department of the National Observatory
|
||||
records <a href="http://pcdsh01.on.br/DecHV.html"
|
||||
hreflang="pt-BR">Brazil's daylight saving time decrees (in
|
||||
Portuguese)</a>.</dd>
|
||||
<dt>Canada</dt>
|
||||
<dd>The Institute for National Measurement Standards publishes current
|
||||
and some older information about <a
|
||||
href="http://inms-ienm.nrc-cnrc.gc.ca/time_services/daylight_savings_e.html">Time
|
||||
Zones and Daylight Saving Time</a>.</dd>
|
||||
<dt>Chile</dt>
|
||||
<dd>WebExhibits publishes a <a
|
||||
href="http://webexhibits.org/daylightsaving/chile.html"
|
||||
hreflang="es">history of official time (in Spanish)</a> originally
|
||||
written by the Chilean Hydrographic and Oceanographic Service.</dd>
|
||||
<dt>Germany</dt>
|
||||
<dd>The National Institute for Science and Technology maintains the <a
|
||||
href="http://www.ptb.de/en/org/4/44/441/dars_e.htm">Realisation of
|
||||
Legal Time in Germany</a>.</dd>
|
||||
<dt>Israel</dt>
|
||||
<dd>The Interior Ministry periodically issues <a
|
||||
href="ftp://ftp.cs.huji.ac.il/pub/tz/announcements/"
|
||||
hreflang="he">announcements (in Hebrew)</a>.</dd>
|
||||
<dt>Mexico</dt>
|
||||
<dd>The Investigation and Analysis Service of the Mexican Library of
|
||||
Congress has published a <a
|
||||
href="http://www.cddhcu.gob.mx/bibliot/publica/inveyana/polisoc/horver/"
|
||||
hreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
|
||||
<dt>Malaysia</dt>
|
||||
<dd>See Singapore below.</dd>
|
||||
<dt>Netherlands</dt>
|
||||
<dd><a href="http://www.phys.uu.nl/~vgent/wettijd/wettijd.htm"
|
||||
hreflang="nl">Legal time in the Netherlands (in Dutch)</a>
|
||||
covers the history of local time in the Netherlands from ancient times.</dd>
|
||||
<dt>New Zealand</dt>
|
||||
<dd>The Department of Internal Affairs maintains a brief history <a
|
||||
href="http://www.dia.govt.nz/diawebsite.nsf/wpg_URL/Resource-material-Information-We-Provide-About-Daylight-Saving">about
|
||||
daylight saving</a>. The privately-maintained <a
|
||||
href="http://www.astrologyhouse.co.nz/timechanges.htm">Time Changes in
|
||||
New Zealand</a> has more details.</dd>
|
||||
<dt>Singapore</dt>
|
||||
<dd><a
|
||||
href="http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html">Why
|
||||
is Singapore in the "Wrong" Time Zone?</a> details the
|
||||
history of legal time in Singapore and Malaysia.</dd>
|
||||
<dt>United Kingdom</dt>
|
||||
<dd><a
|
||||
href="http://www.srcf.ucam.org/~jsm28/british-time/">History of
|
||||
legal time in Britain</a> discusses in detail the country
|
||||
with perhaps the best-documented history of clock adjustments.
|
||||
The National Physical Laboratory also maintains an <a
|
||||
href="http://www.npl.co.uk/time/summer_time_archive.html">archive
|
||||
of summer time dates</a>.</dd>
|
||||
</dl>
|
||||
<h2>Precision timekeeping</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="http://literature.agilent.com/litwebbin/purl.cgi?org_id=tmo&pub_id=5965-7984E">The
|
||||
Science of Timekeeping</a> is a thorough introduction
|
||||
to the theory and practice of precision timekeeping.</li>
|
||||
<li><a href="http://www.ntp.org/">NTP: The Network Time Protocol</a>
|
||||
discusses how to synchronize clocks of
|
||||
Internet hosts.</li>
|
||||
<li><a href="http://gauss.gge.unb.ca/GMT.UT.and.the.RGO.txt"
|
||||
charset="macintosh">A
|
||||
Few Facts Concerning GMT, UT, and the RGO</a>
|
||||
answers questions like "What is the difference between GMT and UTC?"</li>
|
||||
<li><a
|
||||
href="http://www.gb.nrao.edu/~rfisher/Ephemerides/times.html">Astronomical
|
||||
Times</a> explains more abstruse astronomical time scales like TT, TCG,
|
||||
and TDB.</li>
|
||||
<li>The <a href="http://www.iau.org/">IAU</a>'s <a
|
||||
href="http://www.iau-sofa.rl.ac.uk/">Standards Of Fundamental
|
||||
Astronomy</a> (SOFA) initiative publishes Fortran code for converting
|
||||
among time scales like TAI, TDB, TT and UTC.</li>
|
||||
<li><a href="http://www.jpl.nasa.gov/basics/bsf2-3.htm">Basics of
|
||||
Space Flight - Reference Systems - Time Conventions</a>
|
||||
briefly explains interplanetary space flight timekeeping.</li>
|
||||
<li><a
|
||||
href="http://www.giss.nasa.gov/tools/mars24/help/notes.html">Technical
|
||||
Notes on Mars Solar Time as Adopted by the Mars24 Sunclock</a> briefly
|
||||
describes Mars Coordinated Time (MTC) and the diverse local time
|
||||
scales used by each landed mission on Mars.</li>
|
||||
<li><a
|
||||
href="http://hpiers.obspm.fr/eop-pc/products/bulletins/bulletins.html">Bulletins
|
||||
maintained by the IERS EOP (PC)</a> contains official publications of
|
||||
the Earth Orientation Parameters Product Center of the
|
||||
International Earth Rotation Service, the committee that decides
|
||||
when leap seconds occur.</li>
|
||||
<li>The <a
|
||||
href="http://www.mail-archive.com/leapsecs@rom.usno.navy.mil/">Leap
|
||||
Second Discussion List</a> covers McCarthy and Klepczynski's proposal
|
||||
to discontinue leap seconds, published in <a
|
||||
href="http://www.gpsworld.com/">GPS World</a> <strong>10</strong>, 11
|
||||
(1999-11), 50–57 and discussed further in R. A. Nelson et al.,
|
||||
<a href="http://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
|
||||
leap second: its history and possible future</a>,
|
||||
<a href="http://www.bipm.fr/metrologia/metrologia.html">Metrologia</a>
|
||||
<strong>38</strong> (2001), 509–529.
|
||||
<a href="http://www.ucolick.org/~sla/leapsecs/onlinebib.html">The
|
||||
Future of Leap Seconds</a> catalogs information about this
|
||||
contentious issue.</li>
|
||||
</ul>
|
||||
<h2>Time notation</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://www.cl.cam.ac.uk/~mgk25/iso-time.html">A Summary of
|
||||
the International Standard Date and Time Notation</a> is a good
|
||||
summary of ISO
|
||||
8601:1988 - Data elements and interchange formats - Information interchange
|
||||
- Representation of dates and times (which has been superseded by
|
||||
<a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26780">ISO 8601:2000</a>).</li>
|
||||
<li>
|
||||
Section 3.3 of <a
|
||||
href="ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt">Internet RFC 2822</a>
|
||||
specifies the time notation used in email and <a
|
||||
href="ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt">HTTP</a> headers.</li>
|
||||
<li>
|
||||
<a href="ftp://ftp.rfc-editor.org/in-notes/rfc3339.txt">Internet RFC
|
||||
3339</a> specifies an ISO 8601 profile for use in new Internet
|
||||
protocols.</li>
|
||||
<li>
|
||||
<a href="http://www.exit109.com/~ghealton/y2k/yrexamples.html">The
|
||||
Best of Dates, the Worst of Dates</a> covers many problems encountered
|
||||
by software developers when handling dates and time stamps.</li>
|
||||
<li>
|
||||
Alphabetic time zone abbreviations should not be used as unique
|
||||
identifiers for UTC offsets as they are ambiguous in practice. For
|
||||
example, "EST" denotes 5 hours behind UTC in English-speaking North
|
||||
America, but it denotes 10 or 11 hours ahead of UTC in Australia;
|
||||
and French-speaking North Americans prefer "HNE" to "EST". For
|
||||
compatibility with <a href="http://www.pasc.org/#POSIX">POSIX</a> the
|
||||
<code>tz</code> database contains English abbreviations for all time
|
||||
stamps but in many cases these are merely inventions of the database
|
||||
maintainers.</li>
|
||||
</ul>
|
||||
<h2>Related indexes</h2>
|
||||
<ul>
|
||||
<li><a href="tz-art.htm">Time and the Arts</a></li>
|
||||
<li><a href="http://dmoz.org/Reference/Time/">Open Directory -
|
||||
Reference: Time</a></li>
|
||||
<li><a href="http://directory.google.com/Top/Reference/Time/">Google Directory - Reference > Time</a></li>
|
||||
<li><a href="http://dir.yahoo.com/Science/Measurements_and_Units/Time/">Yahoo! Science > Measurements and Units > Time</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
@ -4,6 +4,9 @@ zdump \- time zone dumper
|
||||
.SH SYNOPSIS
|
||||
.B zdump
|
||||
[
|
||||
.B \-\-version
|
||||
]
|
||||
[
|
||||
.B \-v
|
||||
] [
|
||||
.B \-c
|
||||
@ -16,6 +19,9 @@ named on the command line.
|
||||
.PP
|
||||
These options are available:
|
||||
.TP
|
||||
.BI "\-\-version"
|
||||
Output version information and exit.
|
||||
.TP
|
||||
.B \-v
|
||||
For each
|
||||
.I zonename
|
||||
@ -36,4 +42,4 @@ otherwise.
|
||||
Cut off the verbose output near the start of the given year.
|
||||
.SH "SEE ALSO"
|
||||
newctime(3), tzfile(5), zic(8)
|
||||
.\" @(#)zdump.8 7.3
|
||||
.\" @(#)zdump.8 7.4
|
||||
|
@ -1,8 +1,4 @@
|
||||
#ifndef lint
|
||||
#ifndef NOID
|
||||
static char elsieid[] = "@(#)zdump.c 7.28";
|
||||
#endif /* !defined NOID */
|
||||
#endif /* !defined lint */
|
||||
static char elsieid[] = "@(#)zdump.c 7.31";
|
||||
|
||||
/*
|
||||
** This code has been made independent of the rest of the time
|
||||
@ -162,6 +158,11 @@ char * argv[];
|
||||
(void) textdomain(TZ_DOMAIN);
|
||||
#endif /* HAVE_GETTEXT - 0 */
|
||||
progname = argv[0];
|
||||
for (i = 1; i < argc; ++i)
|
||||
if (strcmp(argv[i], "--version") == 0) {
|
||||
(void) printf("%s\n", elsieid);
|
||||
(void) exit(EXIT_SUCCESS);
|
||||
}
|
||||
vflag = 0;
|
||||
cutoff = NULL;
|
||||
while ((c = getopt(argc, argv, "c:v")) == 'c' || c == 'v')
|
||||
@ -171,7 +172,7 @@ char * argv[];
|
||||
if ((c != EOF && c != -1) ||
|
||||
(optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
|
||||
(void) fprintf(stderr,
|
||||
_("%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"),
|
||||
_("%s: usage is %s [ --version ] [ -v ] [ -c cutoff ] zonename ...\n"),
|
||||
argv[0], argv[0]);
|
||||
(void) exit(EXIT_FAILURE);
|
||||
}
|
||||
@ -263,9 +264,8 @@ _("%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"),
|
||||
show(argv[i], t, TRUE);
|
||||
}
|
||||
if (fflush(stdout) || ferror(stdout)) {
|
||||
(void) fprintf(stderr, _("%s: Error writing "),
|
||||
argv[0]);
|
||||
(void) perror(_("standard output"));
|
||||
(void) fprintf(stderr, "%s: ", argv[0]);
|
||||
(void) perror(_("Error writing standard output"));
|
||||
(void) exit(EXIT_FAILURE);
|
||||
}
|
||||
exit(EXIT_SUCCESS);
|
||||
|
@ -4,6 +4,9 @@ zic \- time zone compiler
|
||||
.SH SYNOPSIS
|
||||
.B zic
|
||||
[
|
||||
.B \-\-version
|
||||
]
|
||||
[
|
||||
.B \-v
|
||||
] [
|
||||
.B \-d
|
||||
@ -44,6 +47,9 @@ the standard input is read.
|
||||
.PP
|
||||
These options are available:
|
||||
.TP
|
||||
.BI "\-\-version"
|
||||
Output version information and exit.
|
||||
.TP
|
||||
.BI "\-d " directory
|
||||
Create time conversion information files in the named directory rather than
|
||||
in the standard directory named below.
|
||||
@ -75,6 +81,10 @@ Complain if a year that appears in a data file is outside the range
|
||||
of years representable by
|
||||
.IR time (2)
|
||||
values.
|
||||
Also complain if a time of 24:00
|
||||
(which cannot be handled by pre-1998 versions of
|
||||
.IR zic )
|
||||
appears in the input.
|
||||
.TP
|
||||
.B \-s
|
||||
Limit time values stored in output files to values that are the same
|
||||
@ -202,6 +212,7 @@ Recognized forms include:
|
||||
2:00 time in hours and minutes
|
||||
15:00 24-hour format time (for times after noon)
|
||||
1:28:14 time in hours, minutes, and seconds
|
||||
\- equivalent to 0
|
||||
.fi
|
||||
.in -.5i
|
||||
.sp
|
||||
@ -410,4 +421,4 @@ the earliest transition time recorded in the compiled file is correct.
|
||||
/usr/local/etc/zoneinfo standard directory used for created files
|
||||
.SH "SEE ALSO"
|
||||
newctime(3), tzfile(5), zdump(8)
|
||||
.\" @(#)zic.8 7.18
|
||||
.\" @(#)zic.8 7.22
|
||||
|
@ -1,15 +1,17 @@
|
||||
#ifndef lint
|
||||
#ifndef NOID
|
||||
static char elsieid[] = "@(#)zic.c 7.96";
|
||||
#endif /* !defined NOID */
|
||||
#endif /* !defined lint */
|
||||
static char elsieid[] = "@(#)zic.c 7.116";
|
||||
|
||||
#include "private.h"
|
||||
#include "locale.h"
|
||||
#include "tzfile.h"
|
||||
#ifdef unix
|
||||
#include "sys/stat.h" /* for umask manifest constants */
|
||||
#endif /* defined unix */
|
||||
|
||||
#if HAVE_SYS_STAT_H
|
||||
#include "sys/stat.h"
|
||||
#endif
|
||||
#ifdef S_IRUSR
|
||||
#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
|
||||
#else
|
||||
#define MKDIR_UMASK 0755
|
||||
#endif
|
||||
|
||||
/*
|
||||
** On some ancient hosts, predicates like `isspace(C)' are defined
|
||||
@ -440,7 +442,7 @@ const char * const string;
|
||||
static void
|
||||
usage P((void))
|
||||
{
|
||||
(void) fprintf(stderr, _("%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
|
||||
(void) fprintf(stderr, _("%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
|
||||
progname, progname);
|
||||
(void) exit(EXIT_FAILURE);
|
||||
}
|
||||
@ -472,6 +474,11 @@ char * argv[];
|
||||
(void) textdomain(TZ_DOMAIN);
|
||||
#endif /* HAVE_GETTEXT - 0 */
|
||||
progname = argv[0];
|
||||
for (i = 1; i < argc; ++i)
|
||||
if (strcmp(argv[i], "--version") == 0) {
|
||||
(void) printf("%s\n", elsieid);
|
||||
(void) exit(EXIT_SUCCESS);
|
||||
}
|
||||
while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
|
||||
switch (c) {
|
||||
default:
|
||||
@ -563,12 +570,18 @@ _("%s: More than one -L option specified\n"),
|
||||
/*
|
||||
** Make links.
|
||||
*/
|
||||
for (i = 0; i < nlinks; ++i)
|
||||
for (i = 0; i < nlinks; ++i) {
|
||||
eat(links[i].l_filename, links[i].l_linenum);
|
||||
dolink(links[i].l_from, links[i].l_to);
|
||||
if (lcltime != NULL)
|
||||
}
|
||||
if (lcltime != NULL) {
|
||||
eat("command line", 1);
|
||||
dolink(lcltime, TZDEFAULT);
|
||||
if (psxrules != NULL)
|
||||
}
|
||||
if (psxrules != NULL) {
|
||||
eat("command line", 1);
|
||||
dolink(psxrules, TZDEFRULES);
|
||||
}
|
||||
return (errors == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@ -605,12 +618,22 @@ const char * const tofile;
|
||||
|
||||
if (mkdirs(toname) != 0)
|
||||
(void) exit(EXIT_FAILURE);
|
||||
|
||||
result = link(fromname, toname);
|
||||
#if (HAVE_SYMLINK - 0)
|
||||
if (result != 0) {
|
||||
result = symlink(fromname, toname);
|
||||
if (result != 0 &&
|
||||
access(fromname, F_OK) == 0 &&
|
||||
!itsdir(fromname)) {
|
||||
const char *s = tofile;
|
||||
register char * symlinkcontents = NULL;
|
||||
while ((s = strchr(s+1, '/')) != NULL)
|
||||
symlinkcontents = ecatalloc(symlinkcontents, "../");
|
||||
symlinkcontents = ecatalloc(symlinkcontents, fromfile);
|
||||
|
||||
result = symlink(symlinkcontents, toname);
|
||||
if (result == 0)
|
||||
warning(_("hard link failed, symbolic link used"));
|
||||
ifree(symlinkcontents);
|
||||
}
|
||||
#endif
|
||||
if (result != 0) {
|
||||
@ -908,6 +931,8 @@ const int signable;
|
||||
error(errstring);
|
||||
return 0;
|
||||
}
|
||||
if (noise && hh == HOURSPERDAY)
|
||||
warning(_("24:00 not handled by pre-1998 versions of zic"));
|
||||
return eitol(sign) *
|
||||
(eitol(hh * MINSPERHOUR + mm) *
|
||||
eitol(SECSPERMIN) + eitol(ss));
|
||||
@ -1132,14 +1157,15 @@ const int nfields;
|
||||
error(_("time before zero"));
|
||||
return;
|
||||
}
|
||||
t = (time_t) dayoff * SECSPERDAY;
|
||||
/*
|
||||
** Cheap overflow check.
|
||||
*/
|
||||
if (t / SECSPERDAY != dayoff) {
|
||||
error(_("time overflow"));
|
||||
if (dayoff < min_time / SECSPERDAY) {
|
||||
error(_("time too small"));
|
||||
return;
|
||||
}
|
||||
if (dayoff > max_time / SECSPERDAY) {
|
||||
error(_("time too large"));
|
||||
return;
|
||||
}
|
||||
t = (time_t) dayoff * SECSPERDAY;
|
||||
tod = gethms(fields[LP_TIME], _("invalid time of day"), FALSE);
|
||||
cp = fields[LP_CORR];
|
||||
{
|
||||
@ -1292,9 +1318,9 @@ const char * const timep;
|
||||
return;
|
||||
} else if (noise) {
|
||||
if (rp->r_loyear < min_year_representable)
|
||||
warning(_("starting year too low to be represented"));
|
||||
warning(_("ending year too low to be represented"));
|
||||
else if (rp->r_loyear > max_year_representable)
|
||||
warning(_("starting year too high to be represented"));
|
||||
warning(_("ending year too high to be represented"));
|
||||
}
|
||||
if (rp->r_loyear > rp->r_hiyear) {
|
||||
error(_("starting year greater than ending year"));
|
||||
@ -1585,16 +1611,16 @@ const int zonecount;
|
||||
typecnt = 0;
|
||||
charcnt = 0;
|
||||
/*
|
||||
** A guess that may well be corrected later.
|
||||
*/
|
||||
stdoff = 0;
|
||||
/*
|
||||
** Thanks to Earl Chew (earl@dnd.icp.nec.com.au)
|
||||
** for noting the need to unconditionally initialize startttisstd.
|
||||
*/
|
||||
startttisstd = FALSE;
|
||||
startttisgmt = FALSE;
|
||||
for (i = 0; i < zonecount; ++i) {
|
||||
/*
|
||||
** A guess that may well be corrected later.
|
||||
*/
|
||||
stdoff = 0;
|
||||
zp = &zpfirst[i];
|
||||
usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
|
||||
useuntil = i < (zonecount - 1);
|
||||
@ -1614,8 +1640,7 @@ const int zonecount;
|
||||
if (usestart) {
|
||||
addtt(starttime, type);
|
||||
usestart = FALSE;
|
||||
}
|
||||
else if (stdoff != 0)
|
||||
} else if (stdoff != 0)
|
||||
addtt(min_time, type);
|
||||
} else for (year = min_year; year <= max_year; ++year) {
|
||||
if (useuntil && year > zp->z_untilrule.r_hiyear)
|
||||
@ -1892,10 +1917,12 @@ const char * const type;
|
||||
buf = erealloc(buf, (int) (132 + strlen(yitcommand) + strlen(type)));
|
||||
(void) sprintf(buf, "%s %d %s", yitcommand, year, type);
|
||||
result = system(buf);
|
||||
if (result == 0)
|
||||
return TRUE;
|
||||
if (result == (1 << 8))
|
||||
return FALSE;
|
||||
if (WIFEXITED(result)) switch (WEXITSTATUS(result)) {
|
||||
case 0:
|
||||
return TRUE;
|
||||
case 1:
|
||||
return FALSE;
|
||||
}
|
||||
error(_("Wild result from command execution"));
|
||||
(void) fprintf(stderr, _("%s: command was '%s', result was %d\n"),
|
||||
progname, buf, result);
|
||||
@ -2112,18 +2139,17 @@ register const int wantedy;
|
||||
--i;
|
||||
}
|
||||
if (i < 0 || i >= len_months[isleap(y)][m]) {
|
||||
error(_("no day in month matches rule"));
|
||||
(void) exit(EXIT_FAILURE);
|
||||
if (noise)
|
||||
warning(_("rule goes past start/end of month--will not work with pre-2004 versions of zic"));
|
||||
}
|
||||
}
|
||||
if (dayoff < 0 && !TYPE_SIGNED(time_t))
|
||||
return min_time;
|
||||
if (dayoff < min_time / SECSPERDAY)
|
||||
return min_time;
|
||||
if (dayoff > max_time / SECSPERDAY)
|
||||
return max_time;
|
||||
t = (time_t) dayoff * SECSPERDAY;
|
||||
/*
|
||||
** Cheap overflow check.
|
||||
*/
|
||||
if (t / SECSPERDAY != dayoff)
|
||||
return (dayoff > 0) ? max_time : min_time;
|
||||
return tadd(t, rp->r_tod);
|
||||
}
|
||||
|
||||
@ -2171,7 +2197,7 @@ char * const argname;
|
||||
** created by some other multiprocessor, so we get
|
||||
** to do extra checking.
|
||||
*/
|
||||
if (mkdir(name, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) != 0) {
|
||||
if (mkdir(name, MKDIR_UMASK) != 0) {
|
||||
const char *e = strerror(errno);
|
||||
|
||||
if (errno != EEXIST || !itsdir(name)) {
|
||||
@ -2206,5 +2232,5 @@ const int i;
|
||||
}
|
||||
|
||||
/*
|
||||
** UNIX was a registered trademark of UNIX System Laboratories in 1993.
|
||||
** UNIX was a registered trademark of The Open Group in 2003.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user