Sources for Time Zone and Daylight Saving Time Data
@(#)tz-link.htm 7.48
Please send corrections to this web page to the
time zone mailing list.
The tz
database
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 tz
or zoneinfo
)
is used by several implementations,
including
the
GNU
C Library used in
GNU/Linux,
FreeBSD,
NetBSD,
OpenBSD,
Cygwin,
DJGPP,
HP-UX,
IRIX,
Mac OS X,
OpenVMS,
Solaris,
Tru64, and
UnixWare.
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, America/New_York
represents most of the US eastern time zone;
America/Indianapolis
represents most of Indiana, which
uses eastern time without daylight saving time (DST);
America/Detroit
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 on an extended POSIX
implementation set the TZ
environment variable to
the location's full name, e.g., TZ="America/New_York"
.
In the tz
database's
FTP distribution
the code is in the file tzcodeC.tar.gz
,
where C
is the code's version;
similarly, the data are in tzdataD.tar.gz
,
where D
is the data's version.
The following shell commands download
these files to a GNU/Linux or similar host;
see the downloaded
README
file for what to do next.
wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz'
gzip -dc tzcode*.tar.gz | tar -xf -
gzip -dc tzdata*.tar.gz | tar -xf -
The code lets you compile the tz
source files into
machine-readable binary files, one for each location. It also lets
you read a tz
binary file and interpret time stamps for that
location.
The data are by no means authoritative. If you find errors, please
send changes to the time zone
mailing list. You can also subscribe to the
mailing list, retrieve the archive of old
messages (in gzip compressed format), or retrieve archived older versions of code
and data; there is also a smaller HTTP
mirror.
The Web has several other sources for time zone and daylight saving time data.
Here are some recent links that may be of interest.
Web pages using recent versions of the tz
database
- Date and Time Gateway
is a text-based point-and-click interface to tables of current time
throughout the world.
- Fancier web interfaces, roughly in ascending order of complexity, include:
- The World Clock -
Time Zones
is a web interface to a time zone database derived from
tz
's.
Other time zone database formats
Other tz
compilers
- Vzic iCalendar
Timezone Converter describes a program Vzic that compiles
tz
source into iCalendar-compatible VTIMEZONE files.
Vzic is freely
available under the GNU
General Public License (GPL).
- DateTime::TimeZone
contains a script
parse_olson
that compiles
tz
source into Perl
modules. It is part of the Perl DateTime Project, which is freely
available under both the GPL and the Perl Artistic
License. DateTime::TimeZone also contains a script
tests_from_zdump
that generates test cases for each clock
transition in the tz
database.
- ICU
contains a C/C++ library for internationalization that
has a compiler from
tz
source
into an ICU-specific format.
ICU is freely available under a
BSD-style license.
- Joda Time - Java date
and time API
contains a class
org.joda.time.tz.ZoneInfoCompiler
that compiles
tz
source into a Joda-specific binary format. Joda Time
is freely available under a BSD-style license.
- PyTZ - Python Time
Zone Library compiles
tz
source into
Python.
It is freely available under a BSD-style license.
Other tz
binary file readers
- The GNU C
Library
has an independent, thread-safe implementation of
a
tz
binary file reader.
This library is freely available under the
GNU Lesser General Public License
(LGPL),
and is widely used in GNU/Linux systems.
- ZoneInfo.java
is a
tz
binary file reader written in Java.
It is freely available under the GNU
LGPL.
- Python time zones
is a
tz
binary file reader written in Python.
It is freely available under a BSD-style license.
Other tz
-based time zone conversion software
Other time zone databases
Maps
Time zone boundaries
Civil time concepts and history
National histories of legal time
- Australia
- The Community Relations Division of the New South Wales
(NSW)
Attorney General's Department maintains a history of
daylight saving in NSW.
- Austria
- The Federal Office of Metrology and Surveying publishes a
table of daylight saving time in Austria (in German).
- Belgium
- The Royal Observatory of Belgium maintains a table of time in Belgium (in Dutch).
- Brazil
- The Time Service Department of the National Observatory
records Brazil's daylight saving time decrees (in
Portuguese).
- Canada
- The Institute for National Measurement Standards publishes current
and some older information about Time
Zones & Daylight Saving Time.
- Chile
- WebExhibits publishes a history of official time (in Spanish) originally
written by the Chilean Hydrographic and Oceanographic Service.
- Germany
- The National Institute for Science and Technology maintains the Realisation of
Legal Time in Germany.
- Israel
- The Interior Ministry periodically issues announcements (in Hebrew).
- Mexico
- The Investigation and Analysis Service of the Mexican Library of
Congress has published a history of Mexican local time (in Spanish).
- Malaysia
- See Singapore below.
- Netherlands
- Legal time in the Netherlands (in Dutch)
covers the history of local time in the Netherlands from ancient times.
- New Zealand
- The Department of Internal Affairs maintains a brief history about
daylight saving. The privately-maintained Time Changes in
New Zealand has more details.
- Singapore
- Why
is Singapore in the "Wrong" Time Zone? details the
history of legal time in Singapore and Malaysia.
- United Kingdom
- History of
legal time in Britain discusses in detail the country
with perhaps the best-documented history of clock adjustments.
The National Physical Laboratory also maintains an archive
of summer time dates.
Precision timekeeping
- The
Science of Timekeeping is a thorough introduction
to the theory and practice of precision timekeeping.
- NTP: The Network
Time Protocol
discusses how to synchronize clocks of
Internet hosts.
- A Few
Facts Concerning GMT, UT, and
the RGO
answers questions like "What is the
difference between GMT and UTC?"
- Astronomical
Times explains more abstruse astronomical time scales like
TDT,
TCG, and
TDB.
- The IAU's SOFA
initiative publishes Fortran
code for converting among time scales like
TAI,
TDB, TDT and
UTC.
- Basics of
Space Flight - Reference Systems - Time Conventions
briefly explains interplanetary space flight timekeeping.
- Technical
Notes on Mars Solar Time as Adopted by the Mars24 Sunclock briefly
describes Mars Coordinated Time (MTC) and the
diverse local time
scales used by each landed mission on Mars.
- Bulletins
maintained by the
IERS
EOP
(PC) contains official publications of
the Earth Orientation Parameters Product Center of the
International Earth Rotation Service, the committee that decides
when leap seconds occur.
- The Leap
Second Discussion List covers McCarthy
and Klepczynski's proposal to discontinue leap seconds, published in GPS World
10, 11
(1999-11), 50–57 and discussed further in R. A. Nelson et al.,
The
leap second: its history and possible future,
Metrologia
38 (2001), 509–529.
The
Future of Leap Seconds catalogs information about this
contentious issue.
Time notation
-
A Summary of
the International Standard Date and Time Notation is a good
summary of
ISO
8601:2004 -- Data elements and interchange formats -- Information
interchange -- Representation of dates and times.
-
Section 3.3 of Internet
RFC 2822
specifies the time notation used in email and HTTP
headers.
-
Internet
RFC 3339 specifies an ISO 8601
profile for use in new Internet
protocols.
-
The
Best of Dates, the Worst of Dates covers many problems encountered
by software developers when handling dates and time stamps.
- ICU contains a
mechanism for localizing time zone
labels and abbreviations; for example, one can use it to specify
Russian translations for "Eastern European Summer Time",
"EEST",
and
Europe/Bucharest
.
This mechanism is part of the
Unicode
CLDR Project;
for example, the By-Type
Chart for //ldml/dates/timeZoneNames/…
shows values for time zone names in many locales.
- 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 POSIX the
tz
database contains English abbreviations for all time stamps but in
many cases these are merely inventions of the database
maintainers.
- Numeric time zone abbreviations typically count hours east of
UTC, e.g.,
+09
for Japan and
-10
for Hawaii. However, the POSIX
TZ
environment variable uses the opposite convention. For
example, one might use TZ="JST-9"
and
TZ="HST10"
for Japan and Hawaii, respectively. If the
tz
database is available, it is usually better to use
settings like TZ="Asia/Tokyo"
and
TZ="Pacific/Honolulu"
instead, as this should avoid
confusion, handle old timestamps better, and insulate you better from
any future changes to the rules. One should never set
POSIX TZ
to a value like
"GMT-9"
, though, since this would falsely claim that
local time is nine hours ahead of UTC and the time zone
is called "GMT".
Related indexes