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