Sources for Time Zone and Daylight Saving Time Data
@(#)tz-link.htm 7.54
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 time zone
boundaries, 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/Phoenix
represents most of Arizona, which
uses mountain 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,
Indiana, which switched from central to eastern time in 1991
and switched back in 2006.
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.
- TZInfo - Ruby Timezone Library
compiles
tz
source into
Ruby.
It is freely available under the MIT 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 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 software
Other time zone databases
Maps
Time zone boundaries
Civil time concepts and history
National histories of legal time
- Australia
- The Bureau of Metrology publishes a list of
Implementation Dates of Daylight Savings Time within Australia.
- 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 History of New Zealand
time has more details.
- Norway
- The Norwegian Meteorological Institute lists
Summer
time in Norway (in Norwegian), citing the
Institute of Theoretical Astrophysics, Oslo.
- 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.
Time
Scales goes into more detail, particularly for historical variants.
- 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.
- LeapSecond.com is
dedicated not only to leap seconds but to precise time and frequency
in general. It covers the state of the art in amateur timekeeping, and
how the art has progressed over the past few decades.
- 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 and archive 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 covers 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.
-
XML
Schema: Datatypes - dateTime specifies a format inspired by
ISO 8601 that is in common use in XML data.
-
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.
-
Date & Time
Formats on the Web surveys web- and Internet-oriented date and time
formats.
-
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 CLDR Sideways Data for 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 time stamps 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