tz-link.html revision 1.3
11.1Schristos<!DOCTYPE html>
21.1Schristos<html lang="en">
31.1Schristos<head>
41.1Schristos<title>Sources for time zone and daylight saving time data</title>
51.1Schristos<meta charset="UTF-8">
61.2Schristos<style>
71.2Schristospre {margin-left: 2em; white-space: pre-wrap;}
81.2Schristos</style>
91.1Schristos</head>
101.1Schristos<body>
111.1Schristos<h1>Sources for time zone and daylight saving time data</h1>
121.1Schristos<p>
131.1Schristos<a href="https://en.wikipedia.org/wiki/Time_zone">Time zone</a> and
141.1Schristos<a href="https://en.wikipedia.org/wiki/Daylight_saving_time">daylight-saving</a>
151.1Schristosrules are controlled by individual
161.1Schristosgovernments. They are sometimes changed with little notice, and their
171.1Schristoshistories and planned futures are often recorded only fitfully. Here
181.1Schristosis a summary of attempts to organize and record relevant data in this
191.1Schristosarea.
201.1Schristos</p>
211.1Schristos<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
221.1Schristos<p>
231.1SchristosThe <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
241.1Schristostime zone database contains code and data
251.1Schristosthat represent the history of local time
261.1Schristosfor many representative locations around the globe.
271.1SchristosIt is updated periodically to reflect changes made by political bodies
281.1Schristosto time zone boundaries and daylight saving rules.
291.1SchristosThis database (known as <code><abbr>tz</abbr></code>,
301.1Schristos<code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>)
311.1Schristosis used by several implementations,
321.1Schristosincluding
331.1Schristos<a href="https://www.gnu.org/software/libc/">the
341.1Schristos<abbr title="GNU's Not Unix">GNU</abbr>
351.1SchristosC Library</a> (used in
361.1Schristos<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
371.1Schristos<a href="https://www.android.com">Android</a>,
381.1Schristos<a href="https://www.freebsd.org">Free<abbr
391.1Schristostitle="Berkeley Software Distribution">BSD</abbr></a>,
401.1Schristos<a href="https://netbsd.org">Net<abbr>BSD</abbr></a>,
411.1Schristos<a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>,
421.1Schristos<a href="https://www.chromium.org/chromium-os">Chromium OS</a>,
431.1Schristos<a href="https://cygwin.com">Cygwin</a>,
441.1Schristos<a href="http://www.delorie.com/djgpp/"><abbr
451.1Schristostitle="DJ's GNU Programming Platform">DJGPP</abbr></a>,
461.1Schristos<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
471.1Schristos<a href="https://www.mysql.com">MySQL</a>,
481.1Schristos<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
491.1Schristostitle="Web Operating System">webOS</abbr></a>,
501.1Schristos<a href="https://ibm.com/aix"><abbr
511.1Schristostitle="Advanced Interactive eXecutive">AIX</abbr></a>,
521.1Schristos<a href="https://en.wikipedia.org/wiki/BlackBerry_10">BlackBerry 10</a>,
531.1Schristos<a href="https://www.apple.com/ios/"><abbr
541.1Schristostitle="iPhone OS">iOS</abbr></a>,
551.1Schristos<a href="https://www.apple.com/macos/">macOS</a>,
561.1Schristos<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
571.1Schristos<a href="https://www.hpe.com/info/openvms">Open<abbr
581.1Schristostitle="Virtual Memory System">VMS</abbr></a>,
591.1Schristos<a href="https://www.oracle.com/database/index.html">Oracle Database</a>, and
601.1Schristos<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
611.1Schristos<p>
621.2SchristosEach main entry in the database represents a <dfn>timezone</dfn>
631.2Schristosfor a set of civil-time clocks that have all agreed since 1970.
641.2SchristosTimezones are typically identified by continent or ocean and then by the
651.2Schristosname of the largest city within the region containing the clocks.
661.1SchristosFor example, <code>America/New_York</code>
671.1Schristosrepresents most of the <abbr title="United States">US</abbr> eastern time zone;
681.1Schristos<code>America/Phoenix</code> represents most of Arizona, which
691.2Schristosuses mountain time without daylight saving time (<abbr>DST</abbr>);
701.1Schristos<code>America/Detroit</code> represents most of Michigan, which uses
711.1Schristoseastern time but with different <abbr>DST</abbr> rules in 1975;
721.1Schristosand other entries represent smaller regions like Starke County,
731.1SchristosIndiana, which switched from central to eastern time in 1991
741.1Schristosand switched back in 2006.
751.1SchristosTo use the database on an extended <a
761.1Schristoshref="https://en.wikipedia.org/wiki/POSIX"><abbr
771.1Schristostitle="Portable Operating System Interface">POSIX</abbr></a>
781.1Schristosimplementation set the <code><abbr>TZ</abbr></code>
791.1Schristosenvironment variable to the location's full name,
801.1Schristose.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
811.1Schristos<p>
821.2SchristosAssociated with each timezone is a history of offsets from
831.1Schristos<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
841.1SchristosTime</a> (<abbr>UT</abbr>), which is <a
851.1Schristoshref="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
861.1SchristosTime</a> (<abbr>GMT</abbr>) with days beginning at midnight;
871.2Schristosfor timestamps after 1960 this is more precisely <a
881.1Schristoshref="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
891.1SchristosUniversal Time</a> (<abbr>UTC</abbr>).
901.1SchristosThe database also records when daylight saving time was in use,
911.1Schristosalong with some time zone abbreviations such as <abbr>EST</abbr>
921.1Schristosfor Eastern Standard Time in the <abbr>US</abbr>.</p>
931.1Schristos<h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2>
941.1Schristos<p>
951.1SchristosThe following <a
961.1Schristoshref="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
971.1Schristosthe latest release's two
981.1Schristos<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
991.1Schristosto a <abbr>GNU</abbr>/Linux or similar host.</p>
1001.2Schristos<pre><code>mkdir tzdb
1011.1Schristoscd tzdb
1021.1Schristos<a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
1031.1Schristoswget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
1041.1Schristos<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 -
1051.1Schristosgzip -dc tzdata-latest.tar.gz | tar -xf -
1061.1Schristos</code></pre>
1071.1Schristos<p>Alternatively, the following shell commands download the same
1081.1Schristosrelease in a single-tarball format containing extra data
1091.1Schristosuseful for regression testing:</p>
1101.2Schristos<pre><code>wget <a href="https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz">https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz</a>
1111.1Schristos<a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
1121.1Schristos</code></pre>
1131.1Schristos<p>These commands use convenience links to the latest release
1141.1Schristosof the <code><abbr>tz</abbr></code> database hosted by the
1151.1Schristos<a href="https://www.iana.org/time-zones">Time Zone Database website</a>
1161.1Schristosof the <a href="https://www.iana.org">Internet Assigned Numbers
1171.1SchristosAuthority (IANA)</a>.
1181.1SchristosOlder releases are in files named
1191.1Schristos<code>tzcode<var>V</var>.tar.gz</code>,
1201.1Schristos<code>tzdata<var>V</var>.tar.gz</code>, and
1211.1Schristos<code>tzdb-<var>V</var>.tar.lz</code>,
1221.1Schristoswhere <code><var>V</var></code> is the version.
1231.1SchristosSince 1996, each version has been a four-digit year followed by
1241.1Schristoslower-case letter (<samp>a</samp> through <samp>z</samp>,
1251.1Schristosthen <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
1261.1Schristosthrough <samp>zzz</samp>, and so on).
1271.1SchristosSince version 2016h, each release has contained a text file named
1281.1Schristos"<samp>version</samp>" whose first (and currently only) line is the version.
1291.1SchristosThe releases are also available in an
1301.1Schristos<a href="ftp://ftp.iana.org/tz/releases/"><abbr
1311.1Schristostitle="File Transfer Protocol">FTP</abbr> directory</a> via a
1321.1Schristosless-secure protocol.</p>
1331.1Schristos<p>Alternatively, a development repository of code and data can be
1341.1Schristosretrieved from <a href="https://github.com">GitHub</a> via the shell
1351.1Schristoscommand:</p>
1361.2Schristos<pre><code><a href="https://git-scm.com">git</a> clone <a href="https://github.com/eggert/tz">https://github.com/eggert/tz</a>
1371.1Schristos</code></pre>
1381.1Schristos<p>
1391.1SchristosSince version 2012e, each release has been tagged in development repositories.
1401.1SchristosUntagged commits are less well tested and probably contain
1411.1Schristosmore errors.</p>
1421.1Schristos<p>
1431.1SchristosAfter obtaining the code and data files, see the
1441.1Schristos<code>README</code> file for what to do next.
1451.1SchristosThe code lets you compile the <code><abbr>tz</abbr></code> source files into
1461.2Schristosmachine-readable binary files, one for each location. The binary files
1471.2Schristosare in a special timezone information format (<dfn><abbr>TZif</abbr></dfn>).
1481.2SchristosThe code also lets
1491.2Schristosyou read a <abbr>TZif</abbr> file and interpret timestamps for that
1501.1Schristoslocation.</p>
1511.1Schristos<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
1521.1Schristos<p>
1531.1SchristosThe <code><abbr>tz</abbr></code> code and data
1541.1Schristosare by no means authoritative. If you find errors, please
1551.1Schristossend changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
1561.1Schristosthe time zone mailing list. You can also <a
1571.1Schristoshref="https://mm.icann.org/mailman/listinfo/tz">subscribe</a> to it
1581.1Schristosand browse the <a
1591.1Schristoshref="https://mm.icann.org/pipermail/tz/">archive of old
1601.1Schristosmessages</a>.</p>
1611.1Schristos<p>
1621.1SchristosIf your government plans to change its time zone boundaries or
1631.1Schristosdaylight saving rules, inform <code>tz@iana.org</code> well in
1641.1Schristosadvance, as this will coordinate updates to many cell phones,
1651.1Schristoscomputers, and other devices around the world. With
1661.1Schristosless than a year's notice there is a good chance that some
1671.1Schristoscomputer-based clocks will operate incorrectly after the change, due
1681.1Schristosto delays in propagating updates to software and data. The shorter
1691.1Schristosthe notice, the more likely clock problems will arise; see "<a
1701.1Schristoshref="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
1711.1Schristosthe Timing of Time Zone Changes</a>" for examples.
1721.1Schristos</p>
1731.1Schristos<p>
1741.1SchristosChanges to the <code><abbr>tz</abbr></code> code and data are often
1751.1Schristospropagated to clients via operating system updates, so
1761.1Schristosclient <code><abbr>tz</abbr></code> data can often be corrected by
1771.1Schristosapplying these updates. With GNU/Linux and similar systems, if your
1781.1Schristosmaintenance provider has not yet adopted the
1791.1Schristoslatest <code><abbr>tz</abbr></code> data, you can often short-circuit
1801.1Schristosthe process by tailoring the generic instructions in
1811.1Schristosthe <code><abbr>tz</abbr> README</code> file and installing the latest
1821.1Schristosdata yourself. System-specific instructions for installing the
1831.1Schristoslatest <code><abbr>tz</abbr></code> data have also been published
1841.1Schristosfor <a href="https://www.ibm.com/developerworks/aix/library/au-aix-olson-time-zone/index.html"><abbr>AIX</abbr></a>,
1851.1Schristos<a
1861.1Schristoshref="https://play.google.com/store/apps/details?id=com.google.android.timezone.data">Android</a>,
1871.1Schristos<a
1881.1Schristoshref="http://userguide.icu-project.org/datetime/timezone"><abbr
1891.1Schristostitle="International Components for Unicode">ICU</abbr></a>,
1901.1Schristos<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr></a>
1911.1Schristosand <a
1921.1Schristoshref="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a>
1931.1SchristosJava, <a href="http://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
1941.1Schristoshref="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
1951.1Schristosand <a
1961.1Schristoshref="https://nodatime.org/userguide/tzdb">Noda Time</a> (see below).
1971.1Schristos</p>
1981.1Schristos<p>Sources for the <code><abbr>tz</abbr></code> database are
1991.1Schristos<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
2001.1Schristostitle="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
2011.1Schristos<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
2021.1Schristoswith lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
2031.1Schristostitle="linefeed">LF</abbr></a>,
2041.1Schristoswhich can be modified by common text editors such
2051.1Schristosas <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
2061.1Schristos<a href="https://wiki.gnome.org/Apps/Gedit">gedit</a>, and
2071.1Schristos<a href="https://www.vim.org">vim</a>.
2081.1SchristosSpecialized source-file editing can be done via the
2091.1Schristos<a href="https://packagecontrol.io/packages/zoneinfo">Sublime
2101.1Schristoszoneinfo</a> package for <a
2111.1Schristoshref="https://www.sublimetext.com">Sublime Text</a> and the <a
2121.1Schristoshref="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
2131.1Schristoszoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
2141.1SchristosStudio Code</a>.
2151.1Schristos</p>
2161.1Schristos<p>
2171.1SchristosFor further information about updates, please see
2181.1Schristos<a href="https://tools.ietf.org/html/rfc6557">Procedures for
2191.1SchristosMaintaining the Time Zone Database</a> (Internet <abbr
2201.1Schristostitle="Request For Comments">RFC</abbr> 6557). More detail can be
2211.1Schristosfound in <a href="theory.html">Theory and pragmatics of the tz code and data</a>.
2221.2Schristos<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
2231.2Schristosdisplays changes between recent <code><abbr>tzdb</abbr></code> versions.
2241.1Schristos</p>
2251.1Schristos<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
2261.1Schristos<ul>
2271.1Schristos<li>The article
2281.1Schristos<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
2291.1Schristosan encyclopedic summary.</li>
2301.1Schristos<li><a href="tz-how-to.html">How to Read the
2311.1Schristostz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
2321.1Schristosdatabase format.</li>
2331.1Schristos<li><a
2341.1Schristoshref="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
2351.1Schristosliterary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
2361.1Schristosdatabase's style.</li>
2371.1Schristos</ul>
2381.1Schristos<h2 id="web">Web sites using recent versions of the
2391.1Schristos<code><abbr>tz</abbr></code> database</h2>
2401.1Schristos<p>
2411.1SchristosThese are listed roughly in ascending order of complexity and fanciness.
2421.1Schristos</p>
2431.1Schristos<ul>
2441.1Schristos<li><a href="https://time.is">Time.is</a> shows locations'
2451.1Schristostime and zones.</li>
2461.1Schristos<li><a href="https://www.timejones.com">TimeJones.com</a>,
2471.1Schristos<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
2481.1Schristos<a href="http://worldclock.com">The World Clock</a>
2491.1Schristosare time zone converters.</li>
2501.1Schristos<li><a
2511.1Schristoshref="http://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
2521.1Schristoslets you see the <code><abbr>TZ</abbr></code> values directly.</li>
2531.1Schristos<li><a
2541.1Schristoshref="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
2551.1SchristosTime in 1000 Places</a> uses descriptions of the values.</li>
2561.1Schristos<li><a href="http://www.timezoneconverter.com/cgi-bin/tzc.tzc">Time Zone
2571.1SchristosConverter</a>
2581.1Schristosuses a pulldown menu.</li>
2591.1Schristos<li><a href="http://home.kpn.nl/vanadovv/time/TZworld.html">Complete
2601.1Schristostimezone information for all countries</a> displays tables of DST rules.
2611.1Schristos<li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
2621.1SchristosWorldwide</a> lets you sort zone names and convert times.</li>
2631.1Schristos<li><a href="https://24timezones.com">24TimeZones</a> has a world
2641.1Schristostime map and a time converter.</li>
2651.1Schristos<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
2661.1Schristoscalculates the current time difference between locations.</li>
2671.1Schristos<li><a href="http://www.wx-now.com">Weather Now</a> and
2681.1Schristos<a href="http://www.thetimenow.com">The Time Now</a> list the weather too.</li>
2691.1Schristos</ul>
2701.1Schristos<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
2711.1Schristos<ul>
2721.1Schristos<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
2731.1Schristos<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
2741.1SchristosDistribution Service (tzdist) working group</a> defined <a
2751.1Schristoshref="https://tools.ietf.org/html/rfc7808">TZDIST</a>
2761.1Schristos(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
2771.1Schristosalong with <a href="https://tools.ietf.org/html/rfc7809">CalDAV</a>
2781.1Schristos(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
2791.2Schristostransferring time zone data by reference.
2801.2SchristosThe <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
2811.2Schristosmailing list</a> discusses two Internet drafts: <a
2821.1Schristosid="TZDIST-Geolocate"
2831.2Schristoshref="https://tools.ietf.org/html/draft-murchison-tzdist-geolocate">TZDIST
2841.2SchristosGeolocate Extension</a> lets a client determine its timezone
2851.1Schristosfrom its geographic location using a <a
2861.2Schristoshref="https://tools.ietf.org/html/rfc5870">'geo' URI</a>, and
2871.2Schristos<a href="https://tools.ietf.org/html/draft-murchison-tzdist-tzif">The
2881.2SchristosTime Zone Information Format (<abbr>TZif</abbr>)</a> specifies the format of
2891.2Schristos<abbr>TZif</abbr> data.</li>
2901.1Schristos<li>The <a href="https://tools.ietf.org/html/rfc5545">
2911.1SchristosInternet Calendaring and Scheduling Core Object Specification
2921.1Schristos(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
2931.1Schristoscovers time zone
2941.1Schristosdata; see its VTIMEZONE calendar component.
2951.1SchristosThe iCalendar format requires specialized parsers and generators; a
2961.1Schristosvariant <a href="https://tools.ietf.org/html/rfc6321">xCal</a>
2971.1Schristos(Internet <abbr>RFC</abbr> 6321) uses
2981.1Schristos<a href="https://www.w3.org/XML/"><abbr
2991.1Schristostitle="Extensible Markup Language">XML</abbr></a> format, and a variant
3001.1Schristos<a href="https://tools.ietf.org/html/rfc7265">jCal</a>
3011.1Schristos(Internet <abbr>RFC</abbr> 7265)
3021.1Schristosuses <a href="https://www.json.org"><abbr
3031.1Schristostitle="JavaScript Object Notation">JSON</abbr></a> format.</li>
3041.1Schristos</ul>
3051.1Schristos<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
3061.1Schristos<ul>
3071.1Schristos<li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a
3081.1Schristoshref="https://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>
3091.1Schristosprogram that compiles
3101.1Schristos<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
3111.1SchristosVzic is freely
3121.1Schristosavailable under the <a
3131.1Schristoshref="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
3141.1SchristosGeneral Public License (<abbr
3151.1Schristostitle="General Public License">GPL</abbr>)</a>.</li>
3161.1Schristos<li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
3171.1Schristosdatabase conversion utility</a> is like Vzic, except for the <a
3181.1Schristoshref="https://www.microsoft.com/net">.NET framework</a>
3191.1Schristosand with a <abbr>BSD</abbr>-style license.</li>
3201.1Schristos<li><a
3211.1Schristoshref="http://search.cpan.org/dist/DateTime-TimeZone/">DateTime::TimeZone</a>
3221.1Schristoscontains a script <code>parse_olson</code> that compiles
3231.1Schristos<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
3241.1Schristosmodules. It is part of the Perl <a
3251.1Schristoshref="http://datetime.perl.org">DateTime Project</a>, which is freely
3261.1Schristosavailable under both the <abbr>GPL</abbr> and the Perl Artistic
3271.1SchristosLicense. DateTime::TimeZone also contains a script
3281.1Schristos<code>tests_from_zdump</code> that generates test cases for each clock
3291.1Schristostransition in the <code><abbr>tz</abbr></code> database.</li>
3301.1Schristos<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
3311.1SchristosDatabase Parser</a> is a
3321.1Schristos<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and
3331.1Schristosruntime library that is <a
3341.1Schristoshref="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0355r4.html">moving
3351.1Schristosforward</a> for inclusion in the next iteration of <a
3361.1Schristoshref="https://isocpp.org/std/the-standard"><em><abbr
3371.1Schristostitle="International Organization for Standardization">ISO</abbr>
3381.1SchristosInternational Standard ISO/IEC 14882:2017(E) &ndash; Programming
3391.1SchristosLanguage C++</em></a>.
3401.1SchristosIt is freely available under the
3411.1Schristos<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
3421.1Schristos<li><a id="ICU" href="http://site.icu-project.org">International Components for
3431.1SchristosUnicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
3441.1Schristoshref="https://en.wikipedia.org/wiki/Java_%28programming_language%29">Java</a>
3451.1Schristoslibraries for internationalization that
3461.1Schristoshas a compiler from <code><abbr>tz</abbr></code> source
3471.1Schristosand from <abbr title="Common Locale Data Repository">CLDR</abbr> data
3481.1Schristos(mentioned <a href="#CLDR">below</a>)
3491.1Schristosinto an <abbr>ICU</abbr>-specific format.
3501.1Schristos<abbr>ICU</abbr> is freely available under a
3511.1Schristos<abbr>BSD</abbr>-style license.</li>
3521.1Schristos<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
3531.1Schristosthe <a href="https://elixir-lang.org">Elixir</a> language downloads
3541.1Schristosand compiles tz source and exposes <abbr
3551.1Schristostitle="Application Program Interface">API</abbr>s for use. It is
3561.1Schristosfreely available under the <abbr>MIT</abbr> license.</li>
3571.1Schristos<li>Java-based compilers and libraries include:
3581.1Schristos<ul>
3591.1Schristos<li>The <a
3601.1Schristoshref="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater
3611.1Schristostool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
3621.1SchristosOracle Java.</li>
3631.1Schristos<li>The <a
3641.1Schristoshref="http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
3651.1Schristos8 <code>java.time</code> <abbr>API</abbr></a> can be supplemented by <a
3661.1Schristoshref="http://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
3671.1Schristoswhich is freely available under a <abbr>BSD</abbr>-style license.</li>
3681.1Schristos<li><a href="http://www.joda.org/joda-time/">Joda-Time &ndash; Java date
3691.1Schristosand time <abbr>API</abbr></a> contains a class
3701.1Schristos<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
3711.1Schristos<code><abbr>tz</abbr></code> source into a binary format. It inspired
3721.1SchristosJava 8 <code>java.time</code>, which its users should migrate to once
3731.1Schristosthey can assume Java 8 or later. It is available under the <a
3741.1Schristoshref="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
3751.1Schristos<li><a href="https://github.com/MenoData/Time4J/">Time4J &ndash;
3761.1SchristosAdvanced date, time and interval library for Java</a> contains a class
3771.1Schristos<code>net.time4j.tool.TimezoneRepositoryCompiler</code> that compiles
3781.1Schristos<code><abbr>tz</abbr></code> source into a binary format. Time4J is
3791.1Schristosavailable under the <a
3801.1Schristoshref="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
3811.1SchristosGeneral Public License (<abbr title="Lesser General Public
3821.1SchristosLicense">LGPL</abbr>)</a>.</li>
3831.1Schristos<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
3841.1SchristosJava-based libraries.</li>
3851.1Schristos</ul>
3861.1Schristos<li><a href="https://nodatime.org">Noda Time &ndash; Date and
3871.1Schristostime <abbr>API</abbr> for .NET</a>
3881.1Schristosand <a href="http://www.babiej.demon.nl/Tz4Net/main.htm">TZ4Net</a>
3891.1Schristosare similar to Joda-Time and Time4J, but for the .NET framework instead of
3901.1SchristosJava. They are freely available under the
3911.1SchristosApache License
3921.1Schristosand a <abbr>BSD</abbr>-style license, respectively.</li>
3931.1Schristos<li><a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>-based
3941.1Schristoscompilers and libraries include:
3951.1Schristos<ul>
3961.1Schristos<li><a
3971.1Schristoshref="https://github.com/kshetline/compact-time-zone-generator">CompactTimeZoneGenerator</a>
3981.1Schristoscompiles time zone data into a compact form designed for
3991.1SchristosJavaScript. It is freely available under a combination of
4001.1Schristosthe <abbr>MIT</abbr> license and the Apache License.</li>
4011.1Schristos<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
4021.1Schristosplugin for the <a href="https://momentjs.com">Moment.js</a> date
4031.1Schristosmanipulation library. It is freely available under the <abbr>MIT</abbr>
4041.1Schristoslicense.</li>
4051.1Schristos<li><a href="https://github.com/mde/timezone-js">TimezoneJS.Date</a>'s
4061.1Schristos<abbr>API</abbr> is upward compatible with standard JavaScript
4071.1SchristosDates. It is freely available under the Apache License.</li>
4081.1Schristos<li><a href="https://github.com/sproutsocial/walltime-js">Walltime-js</a>
4091.1Schristostranslates <abbr>UT</abbr> to local time. It is freely available under
4101.1Schristosthe <abbr>MIT</abbr> license.</li>
4111.1Schristos</ul>
4121.1Schristos<li><a href="https://github.com/JuliaTime/">JuliaTime</a> contains a
4131.1Schristoscompiler from <code><abbr>tz</abbr></code> source into
4141.1Schristos<a href="https://julialang.org/">Julia</a>. It is freely available
4151.1Schristosunder the <abbr>MIT</abbr> license.</li>
4161.2Schristos<li><a href="https://github.com/pavkam/tzdb">Delphi/<abbr
4171.2Schristostitle="Free Pascal Compiler">FPC</abbr> Time Zone Database</a>
4181.2Schristoscompiles from <code><abbr>tz</abbr></code> source into
4191.2Schristos<a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
4201.2Schristosas compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
4211.2Schristosand <a
4221.2Schristoshref="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
4231.2SchristosIt is freely available under a <abbr>BSD</abbr>-style license.</li>
4241.1Schristos<li><a href="http://pytz.sourceforge.net">pytz &ndash; World Timezone
4251.1SchristosDefinitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
4261.1Schristos<a href="https://www.python.org">Python</a>.
4271.1SchristosIt is freely available under a <abbr>BSD</abbr>-style license.</li>
4281.1Schristos<li><a href="https://tzinfo.github.io">TZInfo &ndash;
4291.1SchristosRuby Timezone Library</a>
4301.1Schristoscompiles <code><abbr>tz</abbr></code> source into
4311.1Schristos<a href="https://www.ruby-lang.org/en/">Ruby</a>.
4321.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
4331.1Schristos<li>The <a href="http://www.squeaksource.com/Chronos/">Chronos Date/Time
4341.1SchristosLibrary</a> is
4351.1Schristosa <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
4361.1Schristoslibrary that compiles <code><abbr>tz</abbr></code> source into a time
4371.1Schristoszone repository whose format
4381.1Schristosis either proprietary or an <abbr>XML</abbr>-encoded
4391.1Schristosrepresentation.</li>
4401.1Schristos<li><a id="Tcl" href="https://tcl.tk">Tcl</a>
4411.1Schristoscontains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
4421.1Schristossource into text files, along with a runtime that can read those
4431.1Schristosfiles. Tcl is freely available under a <abbr>BSD</abbr>-style
4441.1Schristoslicense.</li>
4451.1Schristos</ul>
4461.2Schristos<h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
4471.1Schristos<ul>
4481.1Schristos<li>The <a
4491.1Schristoshref="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
4501.1SchristosLibrary</a>
4511.1Schristoshas an independent, thread-safe implementation of
4521.2Schristosa <abbr>TZif</abbr> file reader.
4531.1SchristosThis library is freely available under the LGPL
4541.1Schristosand is widely used in <abbr>GNU</abbr>/Linux systems.</li>
4551.1Schristos<li><a href="https://www.gnome.org">GNOME</a>'s
4561.1Schristos<a href="https://developer.gnome.org/glib/">GLib</a> has
4571.2Schristosa <abbr>TZif</abbr> file reader written in C that
4581.1Schristoscreates a <code>GTimeZone</code> object representing sets
4591.1Schristosof <abbr>UT</abbr> offsets.
4601.1SchristosIt is freely available under the <abbr>LGPL</abbr>.</li>
4611.1Schristos<li>The
4621.1Schristos<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
4631.1Schristos<code>baltzo::TimeZoneUtil</code> component contains a C++
4641.2Schristosimplementation of a <abbr>TZif</abbr> file reader. It is freely available under
4651.1Schristosthe Apache License.</li>
4661.1Schristos<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
4671.1Schristoslibrary that translates between <abbr>UT</abbr> and civil time and
4681.2Schristoscan read <abbr>TZif</abbr> files. It is freely available under the Apache
4691.1SchristosLicense.</li>
4701.1Schristos<li><a href="http://bmsi.com/java/#TZ">ZoneInfo.java</a>
4711.2Schristosis a <abbr>TZif</abbr> file reader written in Java.
4721.1SchristosIt is freely available under the <abbr>LGPL</abbr>.</li>
4731.1Schristos<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
4741.2Schristoslibrary that reads <abbr>TZif</abbr> files and converts
4751.2Schristostimestamps from one time zone or format to another.
4761.1SchristosIt is used by <a href="https://secure.php.net"><abbr
4771.1Schristostitle="PHP: Hypertext Preprocessor">PHP</abbr></a>,
4781.1Schristos<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
4791.1Schristosand <a href="https://www.mongodb.com">MongoDB</a>.
4801.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
4811.1Schristos<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
4821.1SchristosJavaScript library that supports date arithmetic that is time zone
4831.1Schristosaware. It is freely available under the <abbr>MIT</abbr> license.</li>
4841.1Schristos<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
4851.2Schristos<abbr>TZif</abbr> file reader.</li>
4861.1Schristos<li><a href="http://search.cpan.org/perldoc?DateTime::TimeZone::Tzfile">
4871.1SchristosDateTime::TimeZone::Tzfile</a>
4881.2Schristosis a <abbr>TZif</abbr> file reader written in Perl.
4891.1SchristosIt is freely available under the same terms as Perl
4901.1Schristos(dual <abbr>GPL</abbr> and Artistic license).</li>
4911.1Schristos<li>The
4921.1Schristospublic-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
4931.1Schristoslibrary contains a Python tool that
4941.2Schristosconverts <abbr>TZif</abbr> data into
4951.1Schristos<abbr>JSON</abbr>-format data suitable for use
4961.1Schristosin its JavaScript library for time zone conversion. Dates before 1970
4971.1Schristosare not supported.</li>
4981.1Schristos<li>The <a
4991.1Schristoshref="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
5001.1Schristospackage contains <a href="https://www.haskell.org">Haskell</a> code that
5011.2Schristosparses and uses <abbr>TZif</abbr> data. It is freely
5021.1Schristosavailable under a <abbr>BSD</abbr>-style license.</li>
5031.1Schristos</ul>
5041.1Schristos<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
5051.1Schristos<ul>
5061.1Schristos<li><a href="https://foxclocks.org">FoxClocks</a>
5071.1Schristosis an extension for <a href="https://www.google.com/chrome/">Google
5081.1SchristosChrome</a> and for <a
5091.1Schristoshref="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Toolkit_API">Mozilla
5101.1SchristosToolkit</a> applications like <a
5111.1Schristoshref="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
5121.1Schristoshref="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
5131.1SchristosIt displays multiple clocks in the application window, and has a mapping
5141.1Schristosinterface to <a href="https://www.google.com/earth/">Google Earth</a>.
5151.1SchristosIt is freely available under the <abbr>GPL</abbr>.</li>
5161.1Schristos<li><a href="https://golang.org">Go programming language</a>
5171.1Schristosimplementations contain a copy of a 32-bit subset of a recent
5181.1Schristos<code><abbr>tz</abbr></code> database in a
5191.1SchristosGo-specific format.</li>
5201.1Schristos<li><a
5211.1Schristoshref="http://users.skynet.be/Peter.Verthez/projects/intclock/">International
5221.1Schristosclock (intclock)</a> is a clock that displays multiple time zones on
5231.1Schristos<abbr>GNU</abbr>/Linux and similar systems. It is freely available
5241.1Schristosunder the <abbr>GPL</abbr>.</li>
5251.1Schristos<li>Microsoft Windows 8.1
5261.1Schristosand later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
5271.3Schristosdata (mentioned <a href="#CLDR">below</a>) used by the
5281.3Schristos<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
5291.3Schristos<a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
5301.3Schristos<a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
5311.3Schristos<a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
5321.1Schristos<a id="System.TimeZoneInfo"
5331.1Schristoshref="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
5341.1SchristosWindows Time Zones with <code>System.TimeZoneInfo</code></a> describes
5351.1Schristosthe older, proprietary method of Microsoft Windows 2000 and later,
5361.1Schristoswhich stores time zone data in the
5371.1Schristos<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
5381.1Schristos<a
5391.1Schristoshref="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone &rarr;
5401.1SchristosTzid table</a> or <a
5411.1Schristoshref="https://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
5421.1Schristosfile</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
5431.1Schristosto <code><abbr>tz</abbr></code> names.
5441.3SchristosThese mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
5451.3Schristosor the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
5461.1Schristos<li><a
5471.1Schristoshref="https://www.oracle.com/java/index.html">Oracle
5481.1SchristosJava</a> contains a copy of a subset of a recent
5491.1Schristos<code><abbr>tz</abbr></code> database in a
5501.1SchristosJava-specific format.</li>
5511.2Schristos<li><a href="https://relativedata.com/page/Time-Zone-Master">Time Zone
5521.1SchristosMaster</a> is a Microsoft Windows clock program that can automatically
5531.1Schristosdownload, compile and use <code>tz</code> releases. The Basic version
5541.1Schristosis free.</li>
5551.1Schristos<li><a
5561.1Schristoshref="http://veladg.com/velaterra.html">VelaTerra</a> is
5571.1Schristosa macOS program. Its developers
5581.1Schristos<a href="http://veladg.com/tzoffer.html">offer free
5591.1Schristoslicenses</a> to <code><abbr>tz</abbr></code> contributors.</li>
5601.1Schristos</ul>
5611.1Schristos<h2 id="other-dbs">Other time zone databases</h2>
5621.1Schristos<ul>
5631.1Schristos<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
5641.1Schristosis Astrodienst's Web version of Shanks and Pottenger's
5651.1Schristostime zone history atlases also published in <a
5661.1Schristoshref="https://astrocom.com/astrology-products/software/acs-atlas-software">software</a>
5671.1Schristosform by <a href="https://astrocom.com">ACS-Starcrafts</a>.
5681.1SchristosThese atlases are extensive but unreliable, as Shanks appears to have
5691.1Schristosguessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
5701.1Schristossources and do not indicate which entries are guesswork.</li>
5711.1Schristos<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
5721.1Schristosits own <code>tztab</code>(4) format.</li>
5731.1Schristos<li>Microsoft Windows has proprietary data mentioned
5741.1Schristos<a href="#System.TimeZoneInfo">above</a>.</li>
5751.1Schristos<li><a href="https://www.worldtimeserver.com">World Time Server</a>
5761.1Schristosis another time zone database.</li>
5771.1Schristos<li>The <a
5781.1Schristoshref="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
5791.1SchristosSchedules Information Manual</a> of the
5801.1SchristosInternational Air Transport Association
5811.1Schristosgives current time zone rules for airports served by commercial aviation.</li>
5821.1Schristos</ul>
5831.1Schristos<h2 id="maps">Maps</h2>
5841.1Schristos<ul>
5851.1Schristos<li>The <a href="https://www.cia.gov/index.html">United States Central
5861.1SchristosIntelligence Agency (<abbr
5871.1Schristostitle="Central Intelligence Agency">CIA</abbr>)</a> publishes a <a
5881.1Schristoshref="https://www.cia.gov/library/publications/the-world-factbook/graphics/ref_maps/physical/pdf/standard_time_zones_of_the_world.pdf">time
5891.1Schristoszone map</a>; the
5901.1Schristos<a
5911.1Schristoshref="https://www.lib.utexas.edu/maps/world.html">Perry&ndash;Casta&ntilde;eda
5921.1SchristosLibrary Map Collection</a>
5931.1Schristosof the University of Texas at Austin has copies of
5941.1Schristosrecent editions.
5951.1SchristosThe pictorial quality is good,
5961.1Schristosbut the maps do not indicate daylight saving time,
5971.1Schristosand parts of the data are a few years out of date.</li>
5981.1Schristos<li><a href="https://www.worldtimezone.com">Current time around the world
5991.1Schristosand standard time zones map of the world</a>
6001.1Schristoshas several fancy time zone maps; it covers Russia particularly well.
6011.1SchristosThe maps' pictorial quality is not quite as good as the
6021.1Schristos<abbr>CIA</abbr>'s
6031.1Schristosbut the maps are more up to date.</li>
6041.1Schristos<li><a
6051.1Schristoshref="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
6061.1Schristosmuch is time wrong around the world?</a> maps the difference between
6071.1Schristosmean solar and standard time, highlighting areas such as western China
6081.1Schristoswhere the two differ greatly. It's a bit out of date, unfortunately.</li>
6091.1Schristos</ul>
6101.1Schristos<h2 id="boundaries">Time zone boundaries</h2>
6111.2Schristos<p>Geographical boundaries between timezones are available
6121.1Schristosfrom several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a>
6131.1Schristosservices and other sources.</p>
6141.1Schristos<ul>
6151.1Schristos<li>Databases of time zone boundaries include:
6161.1Schristos<ul>
6171.1Schristos<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
6181.1SchristosBoundary Builder</a> extracts
6191.1Schristos<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
6201.2Schristosboundaries of <code><abbr>tzdb</abbr></code> timezones.
6211.1SchristosIts code is freely available under the <abbr>MIT</abbr> license, and
6221.1Schristosits data entries are freely available under the
6231.1Schristos<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
6241.1SchristosOpen Database License</a>. The maps' borders appear to be quite accurate.</li>
6251.1Schristos<li><a href="http://efele.net/maps/tz/"><abbr>TZ</abbr> timezones
6261.1Schristosmaps</a> contains <a
6271.1Schristoshref="https://en.wikipedia.org/wiki/Shapefile">shapefiles</a> of
6281.2Schristossets of <code><abbr>tzdb</abbr></code> timezones. This includes
6291.1Schristos<a href="http://efele.net/maps/tz/world/">tz_world</a>, a shapefile
6301.2Schristosfor all the world's timezones. These maps are no longer maintained and
6311.1Schristosare superseded by the Timezone Boundary Builder.</li>
6321.1Schristos<li><a
6331.1Schristoshref="https://github.com/straup/whereonearth-timezone">Whereonearth-timezone</a>
6341.1Schristosis in <a href="https://tools.ietf.org/html/rfc7946">GeoJSON</a> format
6351.1Schristos(Internet <abbr>RFC</abbr> 7946), and combines the
6361.1Schristosthe tz_world shapefiles with the
6371.1Schristos<a href="https://developer.yahoo.com/geo/geoplanet/">GeoPlanet</a>
6381.1Schristosdataset.</li>
6391.1Schristos</ul></li>
6401.1Schristos<li>Programmatic interfaces that map geographical coordinates via tz_world to
6411.2Schristos<code><abbr>tzdb</abbr></code> timezones include:
6421.1Schristos<ul>
6431.1Schristos<li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is
6441.1Schristoswritten in <a
6451.1Schristoshref="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a>
6461.1Schristosand is freely available under the <abbr>MIT</abbr> license.</li>
6471.1Schristos<li>The <a href="https://github.com/bradfitz/latlong">latlong package</a>
6481.1Schristosis written in Go and is freely available under the Apache License.</li>
6491.1Schristos<li><a href="https://github.com/drtimcooper/LatLongToTimezone">LatLongToTimezone</a>,
6501.1Schristosin both Java and
6511.1Schristos<a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift</a>
6521.1Schristosform, is freely available under the MIT license.</li>
6531.1Schristos<li>For <a href="https://nodejs.org/en/">Node.js</a>,
6541.1Schristosthe <a href="https://www.npmjs.com/package/geo-tz">geo-tz module</a>
6551.1Schristosis freely available under the MIT license, and
6561.1Schristosthe <a href="https://www.npmjs.com/package/tz-lookup">tz-lookup module</a>
6571.1Schristosis in the public domain.</li>
6581.1Schristos<li>The <a
6591.1Schristoshref="https://github.com/MrMinimal64/timezonefinder">timezonefinder</a>
6601.1Schristoslibrary for Python is freely available under the MIT license.
6611.1Schristos<li>The <a
6621.1Schristoshref="https://github.com/gunyarakun/timezone_finder">timezone_finder</a>
6631.1Schristoslibrary for Ruby is freely available under the MIT license.</li>
6641.1Schristos<li><a href="https://derickrethans.nl/what-time-is-it.html">What Time
6651.1Schristosis It Here?</a> applies MongoDB
6661.1Schristosgeospatial query operators to shapefiles' data.</li>
6671.1Schristos</ul></li>
6681.1Schristos<li>Free access via a network API, if you register a key, is provided by
6691.1Schristosthe <a href="http://www.geonames.org/export/web-services.html#timezone">GeoNames Timezone web service</a>,
6701.1Schristosthe <a href="https://developers.google.com/maps/documentation/timezone/intro">Google Maps Time Zone API</a>, and
6711.1Schristosthe <a href="https://timezonedb.com">Time Zone Database &amp; API</a>.
6721.1SchristosCommercial network API access is provided
6731.1Schristosby <a href="https://askgeo.com">AskGeo</a>
6741.1Schristosand <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
6751.1Schristos</li>
6761.1Schristos<li>"<a
6771.1Schristoshref="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
6781.1Schristosto get a time zone from a location using latitude and longitude
6791.1Schristoscoordinates?</a>" discusses other geolocation possibilities.</li>
6801.1Schristos<li><a href="http://statoids.com/statoids.html">Administrative
6811.1SchristosDivisions of Countries ("Statoids")</a> lists
6821.1Schristospolitical subdivision data related to time zones.</li>
6831.1Schristos<li><a href="http://home.kpn.nl/vanadovv/time/Multizones.html">Time
6841.1Schristoszone boundaries for multizone countries</a> summarizes legal
6851.1Schristosboundaries between time zones within countries.</li>
6861.1Schristos<li><a href="http://manifold.net/info/freestuff.shtml">Manifold Software
6871.1Schristos&ndash; GIS and Database Tools</a> includes a Manifold-format map of
6881.1Schristosworld time zone boundaries distributed under the
6891.1Schristos<abbr>GPL</abbr>.</li>
6901.1Schristos<li>A ship within the <a
6911.1Schristoshref="https://en.wikipedia.org/wiki/Territorial_waters">territorial
6921.1Schristoswaters</a> of any nation uses that nation's time. In international
6931.1Schristoswaters, time zone boundaries are meridians 15&deg; apart, except that
6941.1Schristos<abbr>UT</abbr>&minus;12 and <abbr>UT</abbr>+12 are each 7.5&deg;
6951.1Schristoswide and are separated by
6961.1Schristosthe 180&deg; meridian (not by the International Date Line, which is
6971.1Schristosfor land and territorial waters only). A captain can change ship's
6981.1Schristosclocks any time after entering a new time zone; midnight changes are
6991.1Schristoscommon.</li>
7001.1Schristos</ul>
7011.1Schristos<h2 id="civil">Civil time concepts and history</h2>
7021.1Schristos<ul>
7031.1Schristos<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
7041.1SchristosWalk through Time</a>
7051.1Schristossurveys the evolution of timekeeping.</li>
7061.1Schristos<li><a href="http://www.webexhibits.org/daylightsaving/">About Daylight
7071.1SchristosSaving Time &ndash; History, rationale, laws &amp; dates</a>
7081.1Schristosis an overall history of <abbr>DST</abbr>.</li>
7091.1Schristos<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
7101.1Schristoscontains guidelines and best practices for software applications that
7111.1Schristosdeal with civil time.</li>
7121.1Schristos<li><a href="http://seizethedaylight.com/dst/">A Brief
7131.1SchristosHistory of Daylight Saving Time</a> summarizes some of the contentious
7141.1Schristoshistory of <abbr>DST</abbr>.</li>
7151.1Schristos<li><a href="https://www.staff.science.uu.nl/~gent0113/idl/idl.htm">A History of
7161.1Schristosthe International Date Line</a> tells the story of the most important
7171.1Schristostime zone boundary.</li>
7181.1Schristos<li><a href="http://statoids.com/tconcept.html">Basic Time
7191.1SchristosZone Concepts</a> discusses terminological issues behind time zones.</li>
7201.1Schristos</ul>
7211.1Schristos<h2 id="national">National histories of legal time</h2>
7221.1Schristos<dl>
7231.1Schristos<dt>Australia</dt>
7241.1Schristos<dd>The Parliamentary Library has commissioned a <a
7251.1Schristoshref="https://www.aph.gov.au/binaries/library/pubs/rp/2009-10/10rp10.pdf">research
7261.1Schristospaper on daylight saving time in Australia</a>.
7271.1SchristosThe Bureau of Meteorology publishes a list of <a
7281.1Schristoshref="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
7291.1SchristosDates of Daylight Savings Time within Australia</a>.</dd>
7301.1Schristos<dt>Belgium</dt>
7311.1Schristos<dd>The Royal Observatory of Belgium maintains a table of <a
7321.1Schristoshref="http://www.astro.oma.be/GENERAL/INFO/nli001a.html"
7331.1Schristoshreflang="nl">time in Belgium (in Dutch)</a>.</dd>
7341.1Schristos<dt>Brazil</dt>
7351.1Schristos<dd>The Time Service Department of the National Observatory
7361.1Schristosrecords <a href="http://pcdsh01.on.br/DecHV.html"
7371.1Schristoshreflang="pt-BR">Brazil's daylight saving time decrees (in
7381.1SchristosPortuguese)</a>.</dd>
7391.1Schristos<dt>Canada</dt>
7401.1Schristos<dd>National Research Council Canada publishes current
7411.1Schristosand some older information about <a
7421.1Schristoshref="https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html">time
7431.1Schristoszones &amp; daylight saving time</a>.</dd>
7441.1Schristos<dt>Chile</dt>
7451.1Schristos<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
7461.1Schristos<a href="http://www.horaoficial.cl/historia_hora.html" hreflang="es">history of
7471.1SchristosChile's official time (in Spanish)</a>.</dd>
7481.3Schristos<dt>China</dt>
7491.3Schristos<dd>The Hong Kong Observatory maintains a
7501.3Schristos<a href="https://www.hko.gov.hk/gts/time/Summertime.htm">history of
7511.3Schristos summer time in Hong Kong</a>,
7521.3Schristosand Macau's Meteorological and Geophysical Bureau maintains a <a
7531.3Schristoshref="http://www.smg.gov.mo/smg/geophysics/e_t_Summer%20Time.htm">similar
7541.3Schristoshistory for Macau</a>.
7551.3SchristosUnfortunately the latter is incomplete and has errors.</dd>
7561.1Schristos<dt>Czech Republic</dt>
7571.1Schristos<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
7581.1Schristoshreflang="cs">When daylight saving time starts and ends (in Czech)</a>
7591.1Schristossummarizes and cites historical DST regulations.</dd>
7601.1Schristos<dt>Germany</dt>
7611.1Schristos<dd>The National Institute for Science and Technology maintains the <a
7621.1Schristoshref="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
7631.1Schristosof Legal Time in Germany</a>.</dd>
7641.1Schristos<dt>Israel</dt>
7651.1Schristos<dd>The Interior Ministry periodically issues <a
7661.1Schristoshref="ftp://ftp.cs.huji.ac.il/pub/tz/announcements"
7671.1Schristoshreflang="he">announcements (in Hebrew)</a>.</dd>
7681.1Schristos<dt>Italy</dt>
7691.1Schristos<dd>The National Institute of Metrological Research maintains a
7701.2Schristos<a href="http://oldsite.inrim.it/res/tf/ora_legale_i.shtml">table of civil time
7711.1Schristos(in Italian)</a>.</dd>
7721.2Schristos<dt>Malaysia</dt>
7731.2Schristos<dd>See Singapore <a href="#Singapore">below</a>.</dd>
7741.1Schristos<dt>Mexico</dt>
7751.1Schristos<dd>The Investigation and Analysis Service of the Mexican Library of
7761.1SchristosCongress has published a <a
7771.1Schristoshref="http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
7781.1Schristoshreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
7791.1Schristos<dt>Netherlands</dt>
7801.1Schristos<dd><a href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm"
7811.1Schristoshreflang="nl">Legal time in the Netherlands (in Dutch)</a>
7821.1Schristoscovers the history of local time in the Netherlands from ancient times.</dd>
7831.1Schristos<dt>New Zealand</dt>
7841.1Schristos<dd>The Department of Internal Affairs maintains a brief <a
7851.1Schristoshref="https://www.dia.govt.nz/Daylight-Saving-History">History of
7861.1SchristosDaylight Saving</a>. The privately-maintained <a
7871.1Schristoshref="http://astrologyschool.com/nztime.html">History of New Zealand
7881.1Schristostime</a> has more details.</dd>
7891.1Schristos<dt>Singapore</dt>
7901.1Schristos<dd><a id="Singapore"
7911.1Schristoshref="http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html">Why
7921.1Schristosis Singapore in the "Wrong" Time Zone?</a> details the
7931.1Schristoshistory of legal time in Singapore and Malaysia.</dd>
7941.1Schristos<dt>United Kingdom</dt>
7951.1Schristos<dd><a
7961.1Schristoshref="https://www.polyomino.org.uk/british-time/">History of
7971.1Schristoslegal time in Britain</a> discusses in detail the country
7981.1Schristoswith perhaps the best-documented history of clock adjustments.
7991.1SchristosThe National Physical Laboratory also maintains an <a
8001.1Schristoshref="http://www.npl.co.uk/educate-explore/what-is-time/archive-of-summer-time-dates">Archive
8011.1Schristosof Summer time dates</a>.</dd>
8021.1Schristos<dt>United States</dt>
8031.1Schristos<dd>The Department of Transportation's <a
8041.1Schristoshref="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
8051.1SchristosTime Zone Proceedings</a> lists changes to time zone boundaries.</dd>
8061.1Schristos<dt>Uruguay</dt>
8071.1Schristos<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
8081.1SchristosNavy (SOHMA) publishes an annual <a
8091.1Schristoshref="http://www.armada.mil.uy/Pagina/institucion/dimat/sohma/almanaque.html" hreflang="es">almanac
8101.1Schristos(in Spanish)</a>.</dd>
8111.1Schristos</dl>
8121.1Schristos<h2 id="precision">Precision timekeeping</h2>
8131.1Schristos<ul>
8141.1Schristos<li><a
8151.1Schristoshref="http://leapsecond.com/hpan/an1289.pdf">The
8161.1SchristosScience of Timekeeping</a> is a thorough introduction
8171.1Schristosto the theory and practice of precision timekeeping.</li>
8181.1Schristos<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
8191.1SchristosTime 2016</a> contains several freely-readable papers.</li>
8201.1Schristos<li><a href="http://www.ntp.org"><abbr
8211.1Schristostitle="Network Time Protocol">NTP</abbr>: The Network
8221.1SchristosTime Protocol</a> (Internet <abbr>RFC</abbr> 5905)
8231.1Schristosdiscusses how to synchronize clocks of
8241.1SchristosInternet hosts.</li>
8251.2Schristos<li>The <a href="https://www.usenix.org/system/files/conference/nsdi18/nsdi18-geng.pdf"><span style="font-variant: small-caps">Huygens</span></a>
8261.2Schristosfamily of software algorithms can achieve accuracy to a few tens of
8271.2Schristosnanoseconds in scalable server farms without special hardware.</li>
8281.1Schristos<li>The <a
8291.1Schristoshref="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
8301.1SchristosTime Protocol</a> (<abbr
8311.1Schristostitle="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
8321.2Schristoscan achieve submicrosecond clock accuracy on a local area network
8331.2Schristoswith special-purpose hardware.</li>
8341.1Schristos<li><a
8351.1Schristoshref="https://tools.ietf.org/html/rfc4833">Timezone
8361.1SchristosOptions for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
8371.1Schristos(Internet <abbr>RFC</abbr> 4833)
8381.1Schristosspecifies a <a
8391.1Schristoshref="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
8401.1Schristosoption for a server to configure
8411.1Schristosa client's time zone and daylight saving settings automatically.</li>
8421.1Schristos<li><a
8431.1Schristoshref="https://www.cv.nrao.edu/~rfisher/Ephemerides/times.html">Astronomical
8441.1SchristosTimes</a> explains more abstruse astronomical time scales like
8451.1Schristos<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
8461.1Schristos<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
8471.1Schristos<abbr title="Barycentric Dynamic Time">TDB</abbr>.
8481.1Schristos<a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
8491.1SchristosScales</a> goes into more detail, particularly for historical variants.</li>
8501.1Schristos<li>The <a href="https://www.iau.org"><abbr
8511.1Schristostitle="International Astronomical Union">IAU</abbr></a>'s <a
8521.1Schristoshref="http://www.iausofa.org"><abbr
8531.1Schristostitle="Standards Of Fundamental Astronomy">SOFA</abbr></a>
8541.1Schristoscollection contains C and <a
8551.1Schristoshref="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
8561.1Schristoscode for converting among time scales like
8571.1Schristos<abbr title="International Atomic Time">TAI</abbr>,
8581.1Schristos<abbr>TDB</abbr>, <abbr>TDT</abbr> and
8591.1Schristos<abbr>UTC</abbr>.</li>
8601.1Schristos<li><a
8611.1Schristoshref="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
8621.1Schristos&ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
8631.1Schristosdiverse local time
8641.1Schristosscales used by each landed mission on Mars.</li>
8651.1Schristos<li><a href="http://leapsecond.com">LeapSecond.com</a> is
8661.1Schristosdedicated not only to leap seconds but to precise time and frequency
8671.1Schristosin general. It covers the state of the art in amateur timekeeping, and
8681.1Schristoshow the art has progressed over the past few decades.</li>
8691.1Schristos<li><a
8701.1Schristoshref="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
8711.1Schristostitle="International Earth Rotation and Reference Systems Service">IERS</abbr>
8721.1SchristosBulletins</a> contains official publications of the International
8731.1SchristosEarth Rotation and Reference Systems Service, which decides when leap
8741.1Schristosseconds occur. The <code>tz</code> code and data support leap seconds
8751.1Schristosvia an optional "<code>right</code>" configuration, as opposed to the
8761.1Schristosdefault "<code>posix</code>" configuration.</li>
8771.1Schristos<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
8781.1Schristosdiscusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
8791.1Schristosleap second so that they disagree with <abbr>UTC</abbr> by at most a
8801.1Schristoshalf second, even though every <abbr>POSIX</abbr> minute has exactly
8811.1Schristossixty seconds. This approach works with the default <code>tz</code>
8821.1Schristos"<code>posix</code>" configuration, is <a
8831.1Schristoshref="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
8841.1Schristosthe <abbr>NTP</abbr> reference implementation, and is used by major
8851.1Schristoscloud service providers.</li>
8861.1Schristos<li>The <a
8871.1Schristoshref="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
8881.1SchristosSecond Discussion List</a> covers <a
8891.1Schristoshref="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
8901.1Schristosand Klepczynski's 1999 proposal to discontinue leap seconds</a>,
8911.1Schristosdiscussed further in
8921.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
8931.1Schristosleap second: its history and possible future</a>.
8941.1Schristos<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
8951.1Schristosmight be redefined
8961.1Schristoswithout Leap Seconds</a> gives pointers on this
8971.1Schristoscontentious issue, which was active until 2015 and could become active
8981.1Schristosagain.</li>
8991.1Schristos</ul>
9001.1Schristos<h2 id="notation">Time notation</h2>
9011.1Schristos<ul>
9021.1Schristos<li>The <a id="CLDR" href="http://cldr.unicode.org">Unicode Common Locale Data
9031.1SchristosRepository (<abbr>CLDR</abbr>) Project</a> has localizations for time
9041.1Schristoszone names, abbreviations, identifiers, and formats. For example, it
9051.1Schristoscontains French translations for "Eastern European Summer Time",
9061.1Schristos"<abbr title="Eastern European Summer Time">EEST</abbr>", and
9071.1Schristos"Bucharest". Its
9081.1Schristos<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
9091.1Schristoscharts</a> show these values for many locales. Data values are available in
9101.1Schristosboth <abbr title="Locale Data Markup Language">LDML</abbr>
9111.1Schristos(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
9121.1Schristos<li>
9131.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
9141.1Schristosthe international standard date and time notation</a> is a good
9151.1Schristossummary of
9161.1Schristos<a
9171.1Schristoshref="https://www.iso.org/standard/40874.html"><em><abbr>ISO</abbr>
9181.1Schristos8601:2004 &ndash; Data elements and interchange formats &ndash; Information
9191.1Schristosinterchange &ndash; Representation of dates and times</em></a>.</li>
9201.1Schristos<li>
9211.1Schristos<a href="https://www.w3.org/TR/xmlschema-2/#dateTime"><abbr>XML</abbr>
9221.1SchristosSchema: Datatypes &ndash; dateTime</a> specifies a format inspired by
9231.1Schristos<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
9241.1Schristos<li><a href="https://tools.ietf.org/html/rfc5322#section-3.3">&sect;3.3 of
9251.1SchristosInternet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
9261.1Schristosspecifies the time notation used in email and <a
9271.1Schristoshref="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
9281.1Schristosheaders.</li>
9291.1Schristos<li>
9301.1Schristos<a href="https://tools.ietf.org/html/rfc3339">Date and Time
9311.1Schristoson the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
9321.1Schristosspecifies an <abbr>ISO</abbr> 8601
9331.1Schristosprofile for use in new Internet
9341.1Schristosprotocols.</li>
9351.1Schristos<li>
9361.1Schristos<a href="https://www.hackcraft.net/web/datetime/">Date &amp; Time
9371.1SchristosFormats on the Web</a> surveys web- and Internet-oriented date and time
9381.1Schristosformats.</li>
9391.1Schristos<li>Alphabetic time zone abbreviations should not be used as unique
9401.1Schristosidentifiers for <abbr>UT</abbr> offsets as they are ambiguous in
9411.1Schristospractice. For example, in English-speaking North America
9421.1Schristos"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>,
9431.1Schristosbut in China it denotes 8 hours ahead of <abbr>UT</abbr>,
9441.1Schristosand French-speaking North Americans prefer
9451.1Schristos"<abbr title="Heure Normale du Centre">HNC</abbr>" to
9461.1Schristos"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
9471.2Schristosdatabase contains English abbreviations for many timestamps;
9481.1Schristosunfortunately some of these abbreviations were merely the database maintainers'
9491.1Schristosinventions, and these have been removed when possible.</li>
9501.1Schristos<li>Numeric time zone abbreviations typically count hours east of
9511.1Schristos<abbr>UT</abbr>, e.g., +09 for Japan and
9521.1Schristos&minus;10 for Hawaii. However, the <abbr>POSIX</abbr>
9531.1Schristos<code><abbr>TZ</abbr></code> environment variable uses the opposite convention.
9541.1SchristosFor example, one might use <code><abbr>TZ</abbr>="<abbr
9551.1Schristostitle="Japan Standard Time">JST</abbr>-9"</code> and
9561.1Schristos<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
9571.1Schristosfor Japan and Hawaii, respectively. If the
9581.1Schristos<code><abbr>tz</abbr></code> database is available, it is usually better to use
9591.1Schristossettings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
9601.1Schristos<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
9611.2Schristosconfusion, handle old timestamps better, and insulate you better from
9621.1Schristosany future changes to the rules. One should never set
9631.1Schristos<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
9641.1Schristos<code>"GMT-9"</code>, though, since this would incorrectly imply that
9651.1Schristoslocal time is nine hours ahead of <abbr>UT</abbr> and the time zone
9661.1Schristosis called "<abbr>GMT</abbr>".</li>
9671.1Schristos</ul>
9681.1Schristos<h2 id="see-also">See also</h2>
9691.1Schristos<ul>
9701.1Schristos<li><a href="theory.html">Theory and pragmatics of the tz code and data</a></li>
9711.1Schristos<li><a href="tz-art.html">Time and the Arts</a></li>
9721.1Schristos</ul>
9731.1Schristos<hr>
9741.1Schristos<address>
9751.1SchristosThis web page is in the public domain, so clarified as of
9761.1Schristos2009-05-17 by Arthur David Olson.
9771.1Schristos<br>
9781.1SchristosPlease send corrections to this web page to the
9791.1Schristos<a href="mailto:tz@iana.org">time zone mailing list</a>.
9801.1Schristos</address>
9811.1Schristos</body>
9821.1Schristos</html>
983