904 lines
45 KiB
HTML
904 lines
45 KiB
HTML
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
"http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
|
|
<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="UTF-8"'>
|
|
<meta name="DC.Title"
|
|
content="Sources for time zone and daylight saving time data">
|
|
<meta name="DC.Creator" content="Eggert, Paul">
|
|
<meta name="DC.Contributor" content="Olson, Arthur David">
|
|
<meta name="DC.Date" content="2016-11-01">
|
|
<meta name="DC.Description"
|
|
content="Sources of information about time zones and daylight saving time">
|
|
<meta name="DC.Identifier"
|
|
content="http://www.iana.org/time-zones/repository/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>
|
|
<p>
|
|
Time zone and daylight saving rules are controlled by individual
|
|
governments. They are sometimes changed with little notice, and their
|
|
histories and planned futures are often recorded only fitfully. Here
|
|
is a summary of attempts to organize and record relevant data in this
|
|
area.
|
|
</p>
|
|
<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
|
|
<p>
|
|
The <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
|
|
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 <a href="https://en.wikipedia.org/wiki/Time_zone">time zone</a>
|
|
boundaries and
|
|
<a href="https://en.wikipedia.org/wiki/Daylight_saving_time">daylight-saving</a>
|
|
rules.
|
|
This database (often called <code>zoneinfo</code> or
|
|
<code><abbr>tz</abbr></code>)
|
|
is used by several implementations,
|
|
including
|
|
<a href="https://www.gnu.org/software/libc/">the
|
|
<abbr title="GNU's Not Unix">GNU</abbr>
|
|
C Library</a> (used in
|
|
<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
|
|
<a href="https://www.android.com">Android</a>,
|
|
<a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS">B2G
|
|
<abbr title="Operating System">OS</abbr></a>,
|
|
<a href="https://www.freebsd.org">Free<abbr
|
|
title="Berkeley Software Distribution">BSD</abbr></a>,
|
|
<a href="http://netbsd.org">Net<abbr>BSD</abbr></a>,
|
|
<a href="http://www.openbsd.org">Open<abbr>BSD</abbr></a>,
|
|
<a href="http://www.chromium.org/chromium-os">Chromium OS</a>,
|
|
<a href="https://cygwin.com">Cygwin</a>,
|
|
<a href="http://www.delorie.com/djgpp/"><abbr
|
|
title="DJ's GNU Programming Platform">DJGPP</abbr></a>,
|
|
<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
|
|
<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
|
|
title="Web Operating System">webOS</abbr></a>,
|
|
<a href="http://ibm.com/aix"><abbr
|
|
title="Advanced Interactive eXecutive">AIX</abbr></a>,
|
|
<a href="https://en.wikipedia.org/wiki/BlackBerry_10">BlackBerry 10</a>,
|
|
<a href="http://www.apple.com/ios/"><abbr
|
|
title="iPhone OS">iOS</abbr></a>,
|
|
<a href="http://www.apple.com/macos/"><abbr
|
|
title="Mac Operating System">macOS</abbr></a>,
|
|
<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
|
|
<a href="http://www.hp.com/go/openvms/">Open<abbr
|
|
title="Virtual Memory System">VMS</abbr></a>,
|
|
<a href="https://www.oracle.com/database/index.html">Oracle Database</a>, and
|
|
<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
|
|
<p>
|
|
Each location in the database represents a 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 <abbr title="United States">US</abbr> eastern time zone;
|
|
<code>America/Phoenix</code> represents most of Arizona, which
|
|
uses mountain time without daylight saving time (<abbr
|
|
title="daylight saving time">DST</abbr>);
|
|
<code>America/Detroit</code> represents most of Michigan, which uses
|
|
eastern time but with different <abbr>DST</abbr> 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 <a
|
|
href="https://en.wikipedia.org/wiki/POSIX"><abbr
|
|
title="Portable Operating System Interface">POSIX</abbr></a>
|
|
implementation set the <code><abbr>TZ</abbr></code>
|
|
environment variable to the location's full name,
|
|
e.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
|
|
<p>
|
|
Associated with each region is a history of offsets from
|
|
<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
|
|
Time</a> (<abbr>UT</abbr>), which is <a
|
|
href="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
|
|
Time</a> (<abbr>GMT</abbr>) with days beginning at midnight;
|
|
for time stamps after 1960 this is more precisely <a
|
|
href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
|
|
Universal Time</a> (<abbr>UTC</abbr>).
|
|
The database also records when daylight saving time was in use,
|
|
along with some time zone abbreviations such as <abbr>EST</abbr>
|
|
for Eastern Standard Time in the <abbr>US</abbr>.</p>
|
|
<p>
|
|
The following <a
|
|
href="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
|
|
the latest release's two
|
|
<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
|
|
to a <abbr>GNU</abbr>/Linux or similar host.</p>
|
|
<pre style="margin-left: 2em"><code>mkdir tzdb
|
|
cd tzdb
|
|
<a href="https://www.gnu.org/software/wget/">wget</a> --retr-symlinks 'ftp://ftp.iana.org/tz/tz*-latest.tar.gz'
|
|
<a href="https://www.gnu.org/software/gzip/">gzip</a> -dc tzcode-latest.tar.gz | <a href="https://www.gnu.org/software/tar/">tar</a> -xf -
|
|
gzip -dc tzdata-latest.tar.gz | tar -xf -
|
|
</code></pre>
|
|
<p>Alternatively, the following shell commands download the same
|
|
release in a single-tarball format containing extra data
|
|
useful for regression testing:</p>
|
|
<pre style="margin-left: 2em"><code>wget --retr-symlinks 'ftp://ftp.iana.org/tz/tzdb-latest.tar.lz'
|
|
<a href="http://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
|
|
</code></pre>
|
|
<p>These commands use convenience links to the latest of the
|
|
<a href="ftp://ftp.iana.org/tz/releases/"><abbr
|
|
title="File Transfer Protocol">FTP</abbr> releases</a>
|
|
of the <code><abbr>tz</abbr></code> database.
|
|
Older releases are in files named
|
|
<code>tzcode<var>V</var>.tar.gz</code>,
|
|
<code>tzdata<var>V</var>.tar.gz</code>, and
|
|
<code>tzdb-<var>V</var>.tar.lz</code>,
|
|
where <code><var>V</var></code> is the version.
|
|
Since 1996, each version has been a four-digit year followed by
|
|
lower-case letter (<samp>a</samp> through <samp>z</samp>,
|
|
then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
|
|
through <samp>zzz</samp>, and so on).
|
|
The releases can also be obtained from the
|
|
<a href="http://www.iana.org/time-zones">Time Zone Database website</a>
|
|
of the <a href="http://www.iana.org">Internet Assigned Numbers
|
|
Authority (IANA)</a>.
|
|
A <a href="https://github.com/eggert/tz">development
|
|
repository</a> of the code and data is available
|
|
in <a href="https://git-scm.com">Git</a> form
|
|
from <a href="https://github.com">GitHub</a>; be careful, as this
|
|
repository is less well tested and probably contains more errors.
|
|
<p>
|
|
After extracting a distribution's files, see its
|
|
<code>README</code> file for what to do next.
|
|
The code lets you compile the <code><abbr>tz</abbr></code> source files into
|
|
machine-readable binary files, one for each location. It also lets
|
|
you read a <code><abbr>tz</abbr></code> binary file and interpret time stamps for that
|
|
location.</p>
|
|
<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
|
|
<p>
|
|
The <code><abbr>tz</abbr></code> code and data
|
|
are by no means authoritative. If you find errors, please
|
|
send changes to the <a href="mailto:tz@iana.org">time zone
|
|
mailing list</a>. You can also <a
|
|
href="https://mm.icann.org/mailman/listinfo/tz">subscribe</a> to it
|
|
and browse the <a
|
|
href="http://mm.icann.org/pipermail/tz/">archive of old
|
|
messages</a>.</p>
|
|
<p>
|
|
If your government plans to change its time zone boundaries or
|
|
daylight saving rules, let the mailing list know well in advance. With
|
|
less than a year's notice there is a good chance that some
|
|
computer-based clocks will operate incorrectly after the change, due
|
|
to delays in propagating updates to software and data. The shorter
|
|
the notice, the more likely clock problems will arise.
|
|
</p>
|
|
<p>Sources for the <code><abbr>tz</abbr></code> database are
|
|
<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
|
|
title="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
|
|
<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
|
|
with lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
|
|
title="linefeed">LF</abbr></a>,
|
|
which can be modified by common text editors such
|
|
as <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
|
|
<a href="https://wiki.gnome.org/Apps/Gedit">gedit</a>, and
|
|
<a href="http://www.vim.org">vim</a>. One
|
|
editor has a package to simplify editing further:</p>
|
|
<ul>
|
|
<li><a href="https://packagecontrol.io/packages/zoneinfo">Sublime
|
|
zoneinfo</a> is a <a href="http://www.sublimetext.com">Sublime
|
|
Text</a> package for syntax highlighting <code><abbr>tz</abbr></code>
|
|
source files.</li>
|
|
</ul>
|
|
<p>
|
|
For further information about updates, please see
|
|
<a href="https://tools.ietf.org/html/rfc6557">Procedures for
|
|
Maintaining the Time Zone Database</a> (Internet <abbr
|
|
title="Request For Comments">RFC</abbr> 6557).</p>
|
|
<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
|
|
<ul>
|
|
<li>The article
|
|
<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
|
|
an encyclopedic summary.</li>
|
|
<li><a href="tz-how-to.html">How to Read the
|
|
tz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
|
|
database format.</li>
|
|
<li><a
|
|
href="http://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
|
|
the Timing of Time Zone Changes</a> gives examples of problems caused
|
|
by inadequate notice by governments of time zone and daylight saving
|
|
rule changes.</li>
|
|
<li><a
|
|
href="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
|
|
literary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
|
|
database's style.</li>
|
|
</ul>
|
|
<h2 id="web">Web sites using recent versions of the
|
|
<code><abbr>tz</abbr></code> database</h2>
|
|
<p>
|
|
These are listed roughly in ascending order of complexity and fanciness.
|
|
</p>
|
|
<ul>
|
|
<li><a href="http://time.is">Time.is</a> shows locations'
|
|
time and zones in a simple format.</li>
|
|
<li><a href="https://www.timejones.com">TimeJones.com</a> is a simple
|
|
time zone converter.</li>
|
|
<li><a
|
|
href="http://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
|
|
lets you see the <code><abbr>TZ</abbr></code> values directly.</li>
|
|
<li><a
|
|
href="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
|
|
Time in 1000 Places</a> uses descriptions of the values.</li>
|
|
<li><a href="http://www.timezoneconverter.com/cgi-bin/tzc.tzc">Time Zone
|
|
Converter</a>
|
|
uses a pulldown menu.</li>
|
|
<li><a href="http://home.kpn.nl/vanadovv/time/TZworld.html">Complete
|
|
timezone information for all countries</a> displays tables of DST rules.
|
|
<li><a href="http://www.timeanddate.com/worldclock/">The World Clock –
|
|
Worldwide</a> lets you sort zone names and convert times.</li>
|
|
<li><a href="http://www.zeitverschiebung.net/en/">Time Difference</a>
|
|
calculates the current time difference between locations.</li>
|
|
<li><a href="http://www.wx-now.com">Weather Now</a> lists the weather too.</li>
|
|
<li><a href="http://www.thetimenow.com">The Time Now</a> also lists weather.</li>
|
|
<li><a href="https://worldtime.io">worldtime.io</a>
|
|
also contains data about time zone boundaries; it supports queries via place
|
|
names and shows location maps.</li>
|
|
</ul>
|
|
<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
|
|
<ul>
|
|
<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
|
|
<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
|
|
Distribution Service (tzdist) working group</a> defined <a
|
|
href="https://tools.ietf.org/html/rfc7808">TZDIST</a>
|
|
(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
|
|
along with <a href="https://tools.ietf.org/html/rfc7809">CalDAV</a>
|
|
(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
|
|
transferring time zone data by reference. The draft <a name="TZDIST-Geolocate"
|
|
href="https://tools.ietf.org/html/draft-murchison-tzdist-geolocate-00">TZDIST
|
|
Geolocate Extension</a> lets a client determine its time zone region
|
|
from its geographic location using a <a
|
|
href="https://tools.ietf.org/html/rfc5870">'geo' URI</a>.</li>
|
|
<li>The <a href="https://tools.ietf.org/html/rfc5545">
|
|
Internet Calendaring and Scheduling Core Object Specification
|
|
(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
|
|
covers time zone
|
|
data; see its VTIMEZONE calendar component.
|
|
The iCalendar format requires specialized parsers and generators; a
|
|
variant <a href="https://tools.ietf.org/html/rfc6321">xCal</a>
|
|
(Internet <abbr>RFC</abbr> 6321) uses
|
|
<a href="https://www.w3.org/XML/"><abbr
|
|
title="Extensible Markup Language">XML</abbr></a> format, and a variant
|
|
<a href="https://tools.ietf.org/html/rfc7265">jCal</a>
|
|
(Internet <abbr>RFC</abbr> 7265)
|
|
uses <a href="http://www.json.org"><abbr
|
|
title="JavaScript Object Notation">JSON</abbr></a> format.</li>
|
|
</ul>
|
|
<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
|
|
<ul>
|
|
<li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a
|
|
href="https://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>
|
|
program that compiles
|
|
<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
|
|
Vzic is freely
|
|
available under the <a
|
|
href="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
|
|
General Public License (<abbr
|
|
title="General Public License">GPL</abbr>)</a>.</li>
|
|
<li><a href="https://sourceforge.net/projects/tzical/">tziCal – tz
|
|
database conversion utility</a> is like Vzic, except for the <a
|
|
href="https://www.microsoft.com/net">.NET framework</a>
|
|
and with a <abbr>BSD</abbr>-style license.</li>
|
|
<li><a
|
|
href="http://search.cpan.org/dist/DateTime-TimeZone/">DateTime::TimeZone</a>
|
|
contains a script <code>parse_olson</code> that compiles
|
|
<code><abbr>tz</abbr></code> source into <a href="https://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 <abbr>GPL</abbr> and the Perl Artistic
|
|
License. DateTime::TimeZone also contains a script
|
|
<code>tests_from_zdump</code> that generates test cases for each clock
|
|
transition in the <code><abbr>tz</abbr></code> database.</li>
|
|
<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
|
|
Database Parser</a> is a
|
|
<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and
|
|
runtime library. It is freely available under the
|
|
<a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
|
|
Attribution 4.0 International Public License</a>.</li>
|
|
<li><a name="ICU" href="http://site.icu-project.org">International Components for
|
|
Unicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
|
|
href="https://en.wikipedia.org/wiki/Java_%28programming_language%29">Java</a>
|
|
libraries for internationalization that
|
|
has a compiler from <code><abbr>tz</abbr></code> source
|
|
and from <abbr title="Common Locale Data Repository">CLDR</abbr> data
|
|
(mentioned <a href="#CLDR">below</a>)
|
|
into an <abbr>ICU</abbr>-specific format.
|
|
<abbr>ICU</abbr> is freely available under a
|
|
<abbr>BSD</abbr>-style license.</li>
|
|
<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
|
|
the <a href="http://elixir-lang.org">Elixir</a> language downloads
|
|
and compiles tz source and exposes <abbr
|
|
title="Application Program Interface">API</abbr>s for use. It is
|
|
freely available under the <abbr
|
|
title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
|
|
<li>Java-based compilers and libraries include:
|
|
<ul>
|
|
<li>The <a
|
|
href="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater
|
|
tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
|
|
Oracle Java.</li>
|
|
<li>The <a
|
|
href="http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
|
|
8 <code>java.time</code> <abbr>API</abbr></a> can be supplemented by <a
|
|
href="http://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
|
|
which is freely available under a <abbr>BSD</abbr>-style license.</li>
|
|
<li><a href="http://www.joda.org/joda-time/">Joda-Time – Java date
|
|
and time <abbr>API</abbr></a> contains a class
|
|
<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
|
|
<code><abbr>tz</abbr></code> source into a binary format. It inspired
|
|
Java 8 <code>java.time</code>, which its users should migrate to once
|
|
they can assume Java 8 or later. It is available under the <a
|
|
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
|
|
<li><a href="https://github.com/MenoData/Time4J/">Time4J –
|
|
Advanced date, time and interval library for Java</a> contains a class
|
|
<code>net.time4j.tool.TimezoneRepositoryCompiler</code> that compiles
|
|
<code><abbr>tz</abbr></code> source into a binary format. Time4J is
|
|
available under the <a
|
|
href="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
|
|
General Public License (<abbr title="Lesser General Public
|
|
License">LGPL</abbr>)</a>.</li>
|
|
<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
|
|
Java-based libraries.</li>
|
|
</ul>
|
|
<li><a href="http://nodatime.org">Noda Time – Date and
|
|
time <abbr>API</abbr> for .NET</a>
|
|
and <a href="http://www.babiej.demon.nl/Tz4Net/main.htm">TZ4Net</a>
|
|
are similar to Joda-Time and Time4J, but for the .NET framework instead of
|
|
Java. They are freely available under the
|
|
Apache License
|
|
and a <abbr>BSD</abbr>-style license, respectively.</li>
|
|
<li><a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>-based
|
|
compilers and libraries include:
|
|
<ul>
|
|
<li><a href="http://momentjs.com/timezone/">Moment Timezone</a> is a
|
|
plugin for the <a href="http://momentjs.com">Moment.js</a> date
|
|
manipulation library. It is freely available under the <abbr>MIT</abbr>
|
|
license.</li>
|
|
<li><a href="https://github.com/mde/timezone-js">TimezoneJS.Date</a>'s
|
|
<abbr>API</abbr> is upward compatible with standard JavaScript
|
|
Dates. It is freely available under the Apache License.</li>
|
|
<li><a href="https://github.com/sproutsocial/walltime-js">Walltime-js</a>
|
|
translates <abbr>UT</abbr> to local time. It is freely available under
|
|
the <abbr>MIT</abbr> license.</li>
|
|
</ul>
|
|
<li><a href="https://github.com/JuliaTime/">JuliaTime</a> contains a
|
|
compiler from <code><abbr>tz</abbr></code> source into
|
|
<a href="http://julialang.org/">Julia</a>. It is freely available
|
|
under the <abbr>MIT</abbr> license.</li>
|
|
<li><a href="http://pytz.sourceforge.net">pytz – World Timezone
|
|
Definitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
|
|
<a href="https://www.python.org">Python</a>.
|
|
It is freely available under a <abbr>BSD</abbr>-style license.</li>
|
|
<li><a href="http://tzinfo.github.io">TZInfo –
|
|
Ruby Timezone Library</a>
|
|
compiles <code><abbr>tz</abbr></code> source into
|
|
<a href="https://www.ruby-lang.org/en/">Ruby</a>.
|
|
It is freely available under the <abbr>MIT</abbr> license.</li>
|
|
<li>The <a href="http://www.squeaksource.com/Chronos/">Chronos Date/Time
|
|
Library</a> is
|
|
a <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
|
|
library that compiles <code><abbr>tz</abbr></code> source into a time
|
|
zone repository whose format
|
|
is either proprietary or an <abbr>XML</abbr>-encoded
|
|
representation.</li>
|
|
<li><a name="Tcl" href="http://tcl.tk">Tcl</a>
|
|
contains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
|
|
source into text files, along with a runtime that can read those
|
|
files. Tcl is freely available under a <abbr>BSD</abbr>-style
|
|
license.</li>
|
|
</ul>
|
|
<h2 id="binary">Other <code><abbr>tz</abbr></code> binary file readers</h2>
|
|
<ul>
|
|
<li>The <a
|
|
href="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
|
|
Library</a>
|
|
has an independent, thread-safe implementation of
|
|
a <code><abbr>tz</abbr></code> binary file reader.
|
|
This library is freely available under the LGPL
|
|
and is widely used in <abbr>GNU</abbr>/Linux systems.</li>
|
|
<li><a href="https://www.gnome.org">GNOME</a>'s
|
|
<a href="https://developer.gnome.org/glib/">GLib</a> has
|
|
a <code><abbr>tz</abbr></code> binary file reader written in C that
|
|
creates a <code>GTimeZone</code> object representing sets
|
|
of <abbr>UT</abbr> offsets.
|
|
It is freely available under the <abbr>LGPL</abbr>.</li>
|
|
<li>The
|
|
<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
|
|
<code>baltzo::TimeZoneUtil</code> component contains a C++
|
|
implementation of a binary file reader. It is freely available under
|
|
the Apache License.</li>
|
|
<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
|
|
library that translates between UTC and civil time and can read binary
|
|
files. It is freely available under the Apache License.</li>
|
|
<li><a href="http://bmsi.com/java/#TZ">ZoneInfo.java</a>
|
|
is a <code><abbr>tz</abbr></code> binary file reader written in Java.
|
|
It is freely available under the <abbr>LGPL</abbr>.</li>
|
|
<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
|
|
JavaScript library that supports date arithmetic that is time zone
|
|
aware. It is freely available under the <abbr>MIT</abbr> license.</li>
|
|
<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
|
|
<code><abbr>tz</abbr></code> binary file reader.</li>
|
|
<li><a href="http://search.cpan.org/perldoc?DateTime::TimeZone::Tzfile">
|
|
DateTime::TimeZone::Tzfile</a>
|
|
is a <code><abbr>tz</abbr></code> binary file reader written in Perl.
|
|
It is freely available under the same terms as Perl
|
|
(dual <abbr>GPL</abbr> and Artistic license).</li>
|
|
<li>The
|
|
public-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
|
|
library contains a Python tool that
|
|
converts <code><abbr>tz</abbr></code> binary data into
|
|
<abbr>JSON</abbr>-format data suitable for use
|
|
in its JavaScript library for time zone conversion. Dates before 1970
|
|
are not supported.</li>
|
|
<li>The <a
|
|
href="http://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
|
|
package contains <a href="https://www.haskell.org">Haskell</a> code that
|
|
parses and uses <code><abbr>tz</abbr></code> binary data. It is freely
|
|
available under a <abbr>BSD</abbr>-style license.</li>
|
|
</ul>
|
|
<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
|
|
<ul>
|
|
<li><a href="https://foxclocks.org">FoxClocks</a>
|
|
is an extension for <a href="https://www.google.com/chrome/">Google
|
|
Chrome</a> and for <a
|
|
href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Toolkit_API">Mozilla
|
|
Toolkit</a> applications like <a
|
|
href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
|
|
href="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
|
|
It displays multiple clocks in the application window, and has a mapping
|
|
interface to <a href="https://www.google.com/earth/">Google Earth</a>.
|
|
It is freely available under the <abbr>GPL</abbr>.</li>
|
|
<li><a href="https://golang.org">Go programming language</a>
|
|
implementations contain a copy of a 32-bit subset of a recent
|
|
<code><abbr>tz</abbr></code> database in a
|
|
Go-specific format.</li>
|
|
<li><a
|
|
href="http://users.skynet.be/Peter.Verthez/projects/intclock/">International
|
|
clock (intclock)</a> is a clock that displays multiple time zones on
|
|
<abbr>GNU</abbr>/Linux and similar systems. It is freely available
|
|
under the <abbr>GPL</abbr>.</li>
|
|
<li>Microsoft Windows 8.1
|
|
and later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
|
|
data (mentioned <a href="#CLDR">below</a>) used by
|
|
<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a>
|
|
classes such as <a
|
|
href="https://msdn.microsoft.com/en-us/library/windows/apps/windows.globalization.datetimeformatting.datetimeformatter.aspx"><code>DateTimeFormatter</code></a>.
|
|
<a name="System.TimeZoneInfo"
|
|
href="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
|
|
Windows Time Zones with <code>System.TimeZoneInfo</code></a> describes
|
|
the older, proprietary method of Microsoft Windows 2000 and later,
|
|
which stores time zone data in the
|
|
<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
|
|
<a
|
|
href="http://www.unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone →
|
|
Tzid table</a> or <a
|
|
href="http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
|
|
file</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
|
|
to <code><abbr>tz</abbr></code> names.
|
|
<li><a
|
|
href="https://www.oracle.com/java/index.html">Oracle
|
|
Java</a> contains a copy of a subset of a recent
|
|
<code><abbr>tz</abbr></code> database in a
|
|
Java-specific format.</li>
|
|
<li><a href="https://kimmo.suominen.com/sw/timezone/">Time Zone</a> is
|
|
a <a href="https://wordpress.org">WordPress</a> plugin. It is freely
|
|
available under a <abbr>BSD</abbr>-style license.</li>
|
|
<li><a href="http://www.relativedata.com/time-zone-master">Time Zone
|
|
Master</a> is a Microsoft Windows clock program that can automatically
|
|
download, compile and use <code>tz</code> releases. The Basic version
|
|
is free.</li>
|
|
<li><a
|
|
href="http://veladg.com/velaterra.html">VelaTerra</a> is
|
|
an <abbr>OS X</abbr> program. Its developers
|
|
<a href="http://veladg.com/tzoffer.html">offer free
|
|
licenses</a> to <code><abbr>tz</abbr></code> contributors.</li>
|
|
</ul>
|
|
<h2 id="other-dbs">Other time zone databases</h2>
|
|
<ul>
|
|
<li><a href="http://www.astro.com/atlas">Time-zone Atlas</a>
|
|
is Astrodienst's Web version of Shanks and Pottenger's
|
|
time zone history atlases published in both <a
|
|
href="http://astrocom.com/astrology-products/software/acs-atlas-software">computer</a>
|
|
and book form (<a
|
|
href="http://www.astrocom.com/astrology/books/american-atlas">one volume
|
|
for the <abbr>US</abbr></a>, and <a
|
|
href="http://www.astrocom.com/astrology/books/international-atlas">one for
|
|
other locations</a>) by <a
|
|
href="http://astrocom.com">Astro Computing Services</a>.
|
|
These atlases are extensive but unreliable, as Shanks appears to have
|
|
guessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
|
|
sources and do not indicate which entries are guesswork.</li>
|
|
<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
|
|
its own <code>tztab</code>(4) format.</li>
|
|
<li>Microsoft Windows has proprietary data mentioned
|
|
<a href="#System.TimeZoneInfo">above</a>.</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
|
|
<abbr>US</abbr> Naval Observatory.</li>
|
|
<li>The <a
|
|
href="http://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
|
|
Schedules Information Manual</a> of the
|
|
International Air Transport Association
|
|
gives current time zone rules for airports served by commercial aviation.</li>
|
|
</ul>
|
|
<h2 id="maps">Maps</h2>
|
|
<ul>
|
|
<li>The <a href="https://www.cia.gov/index.html">United States Central
|
|
Intelligence Agency (<abbr
|
|
title="Central Intelligence Agency">CIA</abbr>)</a> publishes a <a
|
|
href="https://www.cia.gov/library/publications/the-world-factbook/graphics/ref_maps/physical/pdf/standard_time_zones_of_the_world.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://www.worldtimezone.com">Current time around the world
|
|
and standard time zones map of the world</a>
|
|
has several fancy time zone maps; it covers Russia particularly well.
|
|
The maps' pictorial quality is not quite as good as the
|
|
<abbr>CIA</abbr>'s
|
|
but the maps are more up to date.</li>
|
|
<li><a
|
|
href="http://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
|
|
much is time wrong around the world?</a> maps the difference between
|
|
mean solar and standard time, highlighting areas such as western China
|
|
where the two differ greatly. It's a bit out of date, unfortunately.</li>
|
|
</ul>
|
|
<h2 id="boundaries">Time zone boundaries</h2>
|
|
<p>Geographical boundaries between time zone regions are available
|
|
from several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a>
|
|
services and other sources.</p>
|
|
<ul>
|
|
<li>Databases of time zone boundaries include:
|
|
<ul>
|
|
<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
|
|
Boundary Builder</a> extracts
|
|
<a href="http://www.openstreetmap.org">Open Street Map</a> data to build
|
|
boundaries of <code><abbr>tz</abbr></code> regions.
|
|
Its code is freely available under the <abbr>MIT</abbr> license, and
|
|
its data entries are freely available under the
|
|
<a href="http://opendatacommons.org/licenses/odbl/">Open Data Commons
|
|
Open Database License</a>. The maps' borders appear to be quite accurate.</li>
|
|
<li><a href="http://efele.net/maps/tz/"><abbr>TZ</abbr> timezones
|
|
maps</a> contains <a
|
|
href="https://en.wikipedia.org/wiki/Shapefile">shapefiles</a> of
|
|
sets of <code><abbr>tz</abbr></code> regions. This includes
|
|
<a href="http://efele.net/maps/tz/world/">tz_world</a>, a shapefile
|
|
for all the world's regions</li>
|
|
<li><a
|
|
href="https://github.com/straup/whereonearth-timezone">Whereonearth-timezone</a>
|
|
is in <a href="http://geojson.org">GeoJSON</a> form, and combines the
|
|
the tz_world shapefiles with the GeoPlanet dataset.</li>
|
|
</ul></li>
|
|
<li>Programmatic interfaces that map geographical coordinates via tz_world to
|
|
<code><abbr>tz</abbr></code> regions include:
|
|
<ul>
|
|
<li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is
|
|
written in <a
|
|
href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a>
|
|
and is freely available under the <abbr>MIT</abbr> license.</li>
|
|
<li>The <a href="https://github.com/bradfitz/latlong">latlong package</a>
|
|
is written in Go and is freely available under the Apache License.</li>
|
|
<li><a href="https://github.com/drtimcooper/LatLongToTimezone">LatLongToTimezone</a>,
|
|
in both Java and
|
|
<a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift</a>
|
|
form, is freely available under the MIT license.</li>
|
|
<li>The <a
|
|
href="https://github.com/MrMinimal64/timezonefinder">timezonefinder</a>
|
|
library for Python is freely available under the MIT license.
|
|
<li>The <a
|
|
href="https://github.com/gunyarakun/timezone_finder">timezone_finder</a>
|
|
library for Ruby is freely available under the MIT license.</li>
|
|
<li>The <a href="https://www.npmjs.com/package/tz-lookup">tz-lookup module</a>
|
|
for <a href="https://nodejs.org/en/">Node.js</a> is in the public domain.</li>
|
|
<li><a href="https://derickrethans.nl/what-time-is-it.html">What Time
|
|
is It Here?</a> applies <a href="https://www.mongodb.com">MongoDB</a>
|
|
geospatial query operators to shapefiles' data.</li>
|
|
</ul></li>
|
|
<li>Free access via a network API, if you a key, is provided by
|
|
the <a href="http://www.geonames.org/export/web-services.html#timezone">GeoNames Timezone web service</a>,
|
|
the <a href="https://developers.google.com/maps/documentation/timezone/intro">Google Maps Time Zone API</a>, and
|
|
the <a href="https://timezonedb.com">Time Zone Database & API</a>.
|
|
Commercial network API access is provided
|
|
by <a href="https://askgeo.com">AskGeo</a>
|
|
and <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
|
|
Also, an <a
|
|
href="http://mm.icann.org/pipermail/tz/2016-October/024309.html">experimental
|
|
server</a> is available for the TZDIST Geolocate Extension mentioned
|
|
<a href="#TZDIST-Geolocate">above</a>.</li>
|
|
<li>"<a
|
|
href="http://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
|
|
to get a time zone from a location using latitude and longitude
|
|
coordinates?</a>" discusses other geolocation possibilities.</li>
|
|
<li><a href="http://statoids.com/statoids.html">Administrative
|
|
Divisions of Countries ("Statoids")</a> lists
|
|
political subdivision data related to time zones.</li>
|
|
<li><a href="http://home.kpn.nl/vanadovv/time/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://manifold.net/info/freestuff.shtml">Free Stuff for
|
|
Manifold System Users</a> includes a Manifold-format map of
|
|
world time zone boundaries distributed under the
|
|
<abbr>GPL</abbr>.</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>
|
|
<li>A ship within the <a
|
|
href="https://en.wikipedia.org/wiki/Territorial_waters">territorial
|
|
waters</a> of any nation uses that nation's time. In international
|
|
waters, time zone boundaries are meridians 15° apart, except that
|
|
<abbr>UTC</abbr>−12 and <abbr>UTC</abbr>+12 are each 7.5°
|
|
wide and are separated by
|
|
the 180° meridian (not by the International Date Line, which is
|
|
for land and territorial waters only). A captain can change ship's
|
|
clocks any time after entering a new time zone; midnight changes are
|
|
common.</li>
|
|
</ul>
|
|
<h2 id="civil">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://www.webexhibits.org/daylightsaving/">About Daylight
|
|
Saving Time – History, rationale, laws & dates</a>
|
|
is an overall history of <abbr>DST</abbr>.</li>
|
|
<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
|
|
contains guidelines and best practices for software applications that
|
|
deal with civil time.</li>
|
|
<li><a href="http://seizethedaylight.com/dst/">A Brief
|
|
History of Daylight Saving Time</a> summarizes some of the contentious
|
|
history of <abbr>DST</abbr>.</li>
|
|
<li><a href="http://www.staff.science.uu.nl/~gent0113/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://statoids.com/tconcept.html">Basic Time
|
|
Zone Concepts</a> discusses terminological issues behind time zones.</li>
|
|
</ul>
|
|
<h2 id="national">National histories of legal time</h2>
|
|
<dl>
|
|
<dt>Australia</dt>
|
|
<dd>The Parliamentary Library has commissioned a <a
|
|
href="http://www.aph.gov.au/binaries/library/pubs/rp/2009-10/10rp10.pdf">research
|
|
paper on daylight saving time in Australia</a>.
|
|
The Bureau of Meteorology publishes a list of <a
|
|
href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
|
|
Dates of Daylight Savings Time within Australia</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>National Research Council Canada publishes current
|
|
and some older information about <a
|
|
href="http://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html">time
|
|
zones & daylight saving time</a>.</dd>
|
|
<dt>Chile</dt>
|
|
<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
|
|
<a href="http://www.horaoficial.cl/historia_hora.html" hreflang="es">history of
|
|
Chile's official time (in Spanish)</a>.</dd>
|
|
<dt>Germany</dt>
|
|
<dd>The National Institute for Science and Technology maintains the <a
|
|
href="http://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">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>Italy</dt>
|
|
<dd>The National Institute of Metrological Research maintains a
|
|
<a href="http://www.inrim.it/res/tf/ora_legale_i.shtml">table of civil time
|
|
(in Italian)</a>.</dd>
|
|
<dt>Mexico</dt>
|
|
<dd>The Investigation and Analysis Service of the Mexican Library of
|
|
Congress has published a <a
|
|
href="http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
|
|
hreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
|
|
<dt>Malaysia</dt>
|
|
<dd>See Singapore <a href="#Singapore">below</a>.</dd>
|
|
<dt>Netherlands</dt>
|
|
<dd><a href="http://www.staff.science.uu.nl/~gent0113/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 <a
|
|
href="https://www.dia.govt.nz/Daylight-Saving-History">History of
|
|
Daylight Saving</a>. The privately-maintained <a
|
|
href="http://astrologyschool.com/nztime.html">History of New Zealand
|
|
time</a> has more details.</dd>
|
|
<dt>Singapore</dt>
|
|
<dd><a name="Singapore"
|
|
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="https://www.polyomino.org.uk/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/educate-explore/what-is-time/archive-of-summer-time-dates">Archive
|
|
of Summer time dates</a>.</dd>
|
|
<dt>United States</dt>
|
|
<dd>The Department of Transportation's <a
|
|
href="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
|
|
Time Zone Proceedings</a> lists changes to time zone boundaries.</dd>
|
|
</dl>
|
|
<h2 id="precision">Precision timekeeping</h2>
|
|
<ul>
|
|
<li><a
|
|
href="http://literature.agilent.com/litweb/pdf/5965-7984E.pdf">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"><abbr
|
|
title="Network Time Protocol">NTP</abbr>: The Network
|
|
Time Protocol</a> (Internet <abbr>RFC</abbr> 5905)
|
|
discusses how to synchronize clocks of
|
|
Internet hosts.</li>
|
|
<li>The <a
|
|
href="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
|
|
Time Protocol</a> (<abbr
|
|
title="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
|
|
can achieve submicrosecond clock accuracy on a local area network.</li>
|
|
<li><a
|
|
href="https://tools.ietf.org/html/rfc4833">Timezone
|
|
Options for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
|
|
(Internet <abbr>RFC</abbr> 4833)
|
|
specifies a <a
|
|
href="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
|
|
option for a server to configure
|
|
a client's time zone and daylight saving settings automatically.</li>
|
|
<li><a
|
|
href="http://www.cv.nrao.edu/~rfisher/Ephemerides/times.html">Astronomical
|
|
Times</a> explains more abstruse astronomical time scales like
|
|
<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
|
|
<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
|
|
<abbr title="Barycentric Dynamic Time">TDB</abbr>.
|
|
<a href="http://www.ucolick.org/~sla/leapsecs/timescales.html">Time
|
|
Scales</a> goes into more detail, particularly for historical variants.</li>
|
|
<li>The <a href="http://www.iau.org"><abbr
|
|
title="International Astronomical Union">IAU</abbr></a>'s <a
|
|
href="http://www.iausofa.org"><abbr
|
|
title="Standards Of Fundamental Astronomy">SOFA</abbr></a>
|
|
collection contains C and <a
|
|
href="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
|
|
code for converting among time scales like
|
|
<abbr title="International Atomic Time">TAI</abbr>,
|
|
<abbr>TDB</abbr>, <abbr>TDT</abbr> and
|
|
<abbr>UTC</abbr>.</li>
|
|
<li><a href="http://solarsystem.nasa.gov/basics/bsf2-3.php">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">Mars24 Sunclock
|
|
– Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
|
|
diverse local time
|
|
scales used by each landed mission on Mars.</li>
|
|
<li><a href="http://leapsecond.com">LeapSecond.com</a> 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.</li>
|
|
<li><a
|
|
href="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
|
|
title="International Earth Rotation and Reference Systems Service">IERS</abbr>
|
|
Bulletins</a> contains official publications of the International
|
|
Earth Rotation and Reference Systems Service, which decides
|
|
when leap seconds occur.</li>
|
|
<li>The <a
|
|
href="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
|
|
Second Discussion List</a> covers <a
|
|
href="http://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
|
|
and Klepczynski's proposal to discontinue leap seconds</a>,
|
|
discussed further in
|
|
<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.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
|
|
might be redefined
|
|
without Leap Seconds</a> gives pointers on this
|
|
contentious issue.</li>
|
|
</ul>
|
|
<h2 id="notation">Time notation</h2>
|
|
<ul>
|
|
<li>The <a name="CLDR" href="http://cldr.unicode.org">Unicode Common Locale Data
|
|
Repository (<abbr>CLDR</abbr>) Project</a> has localizations for time
|
|
zone names, abbreviations, identifiers, and formats. For example, it
|
|
contains French translations for "Eastern European Summer Time",
|
|
"<abbr title="Eastern European Summer Time">EEST</abbr>", and
|
|
"Bucharest". Its
|
|
<a href="http://www.unicode.org/cldr/charts/latest/by_type/">by-type
|
|
charts</a> show these values for many locales. Data values are available in
|
|
both <abbr title="Locale Data Markup Language">LDML</abbr>
|
|
(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
|
|
<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
|
|
<a
|
|
href="http://www.iso.org/iso/catalogue_detail?csnumber=40874"><abbr
|
|
title="International Organization for Standardization">ISO</abbr>
|
|
8601:2004 – Data elements and interchange formats – Information
|
|
interchange – Representation of dates and times</a>.</li>
|
|
<li>
|
|
<a href="https://www.w3.org/TR/xmlschema-2/#dateTime"><abbr>XML</abbr>
|
|
Schema: Datatypes – dateTime</a> specifies a format inspired by
|
|
<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
|
|
<li><a href="https://tools.ietf.org/html/rfc5322#section-3.3">§3.3 of
|
|
Internet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
|
|
specifies the time notation used in email and <a
|
|
href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
|
|
headers.</li>
|
|
<li>
|
|
<a href="https://tools.ietf.org/html/rfc3339">Date and Time
|
|
on the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
|
|
specifies an <abbr>ISO</abbr> 8601
|
|
profile for use in new Internet
|
|
protocols.</li>
|
|
<li>
|
|
<a href="https://www.hackcraft.net/web/datetime/">Date & Time
|
|
Formats on the Web</a> surveys web- and Internet-oriented date and time
|
|
formats.</li>
|
|
<li>
|
|
<a href="http://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 <abbr>UTC</abbr> offsets as they are ambiguous in
|
|
practice. For example, in English-speaking North America
|
|
"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UTC</abbr>,
|
|
but in China it denotes 8 hours ahead of <abbr>UTC</abbr>,
|
|
and French-speaking North Americans prefer
|
|
"<abbr title="Heure Normale du Centre">HNC</abbr>" to
|
|
"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
|
|
database contains English abbreviations for many time stamps;
|
|
unfortunately some of these abbreviations were merely the database maintainers'
|
|
inventions, and are gradually being removed.</li>
|
|
<li>Numeric time zone abbreviations typically count hours east of
|
|
<abbr>UTC</abbr>, e.g., +09 for Japan and
|
|
−10 for Hawaii. However, the <abbr>POSIX</abbr>
|
|
<code><abbr>TZ</abbr></code> environment variable uses the opposite convention.
|
|
For example, one might use <code><abbr>TZ</abbr>="<abbr
|
|
title="Japan Standard Time">JST</abbr>-9"</code> and
|
|
<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
|
|
for Japan and Hawaii, respectively. If the
|
|
<code><abbr>tz</abbr></code> database is available, it is usually better to use
|
|
settings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
|
|
<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> 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
|
|
<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
|
|
<code>"GMT-9"</code>, though, since this would incorrectly imply that
|
|
local time is nine hours ahead of <abbr>UTC</abbr> and the time zone
|
|
is called "<abbr>GMT</abbr>".</li>
|
|
</ul>
|
|
<h2 id="see-also">See also</h2>
|
|
<ul>
|
|
<li><a href="tz-art.htm">Time and the Arts</a></li>
|
|
</ul>
|
|
<hr>
|
|
<address>
|
|
This web page is in the public domain, so clarified as of
|
|
2009-05-17 by Arthur David Olson.
|
|
<br>
|
|
Please send corrections to this web page to the
|
|
<a href="mailto:tz@iana.org">time zone mailing list</a>.
|
|
</address>
|
|
</body>
|
|
</html>
|