tz-link.html revision 1.13
11.1Schristos<!DOCTYPE html>
21.1Schristos<html lang="en">
31.1Schristos<head>
41.13Schristos<title>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.13Schristos<h1>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.6Schristos  <h3>Outline</h3>
221.6Schristos  <nav>
231.6Schristos    <ul>
241.6Schristos      <li>The <code><abbr>tz</abbr></code> database product and process
251.6Schristos	<ul>
261.6Schristos	  <li><a href="#tzdb">The <code><abbr>tz</abbr></code> database</a></li>
271.6Schristos	  <li><a href="#download">Downloading the <code><abbr>tz</abbr></code> database</a></li>
281.6Schristos	  <li><a href="#changes">Changes to the <code><abbr>tz</abbr></code> database</a></li>
291.6Schristos	  <li><a href="#commentary">Commentary on the <code><abbr>tz</abbr></code> database</a></li>
301.6Schristos	</ul>
311.6Schristos      </li>
321.6Schristos      <li>Uses of the <code><abbr>tz</abbr></code> database
331.6Schristos	<ul>
341.6Schristos	  <li><a href="#web">Web sites using recent versions of the <code><abbr>tz</abbr></code> database</a></li>
351.6Schristos	  <li><a href="#protocols">Network protocols for <code><abbr>tz</abbr></code> data</a></li>
361.6Schristos	  <li><a href="#compilers">Other <code><abbr>tz</abbr></code> compilers</a></li>
371.6Schristos	  <li><a href="#TZif">Other <abbr>TZif</abbr> readers</a></li>
381.6Schristos	  <li><a href="#software">Other <code><abbr>tz</abbr></code>-based time zone software</a></li>
391.6Schristos	</ul>
401.6Schristos      </li>
411.6Schristos      <li>Related data
421.6Schristos	<ul>
431.6Schristos	  <li><a href="#other-dbs">Other time zone databases</a></li>
441.6Schristos	  <li><a href="#maps">Maps</a></li>
451.6Schristos	  <li><a href="#boundaries">Time zone boundaries</a></li>
461.6Schristos	</ul>
471.6Schristos      </li>
481.6Schristos      <li>Timekeeping concepts
491.6Schristos	<ul>
501.6Schristos	  <li><a href="#civil">Civil time concepts and history</a></li>
511.6Schristos	  <li><a href="#national">National histories of legal time</a></li>
521.7Schristos	  <li><a href="#costs">Costs and benefits of time shifts</a></li>
531.6Schristos	  <li><a href="#precision">Precision timekeeping</a></li>
541.6Schristos	  <li><a href="#notation">Time notation</a></li>
551.6Schristos	</ul>
561.6Schristos      </li>
571.13Schristos      <li><a href="#see-also">See also</a></li>
581.6Schristos    </ul>
591.6Schristos  </nav>
601.6Schristos
611.6Schristos<section>
621.1Schristos<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
631.1Schristos<p>
641.1SchristosThe <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
651.1Schristostime zone database contains code and data
661.1Schristosthat represent the history of local time
671.1Schristosfor many representative locations around the globe.
681.1SchristosIt is updated periodically to reflect changes made by political bodies
691.1Schristosto time zone boundaries and daylight saving rules.
701.1SchristosThis database (known as <code><abbr>tz</abbr></code>,
711.1Schristos<code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>)
721.1Schristosis used by several implementations,
731.1Schristosincluding
741.1Schristos<a href="https://www.gnu.org/software/libc/">the
751.1Schristos<abbr title="GNU's Not Unix">GNU</abbr>
761.1SchristosC Library</a> (used in
771.1Schristos<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
781.1Schristos<a href="https://www.android.com">Android</a>,
791.1Schristos<a href="https://www.freebsd.org">Free<abbr
801.1Schristostitle="Berkeley Software Distribution">BSD</abbr></a>,
811.1Schristos<a href="https://netbsd.org">Net<abbr>BSD</abbr></a>,
821.1Schristos<a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>,
831.13Schristos<a href="https://www.chromium.org/chromium-os/">Chromium OS</a>,
841.1Schristos<a href="https://cygwin.com">Cygwin</a>,
851.7Schristos<a href="https://mariadb.org">MariaDB</a>,
861.1Schristos<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
871.1Schristos<a href="https://www.mysql.com">MySQL</a>,
881.1Schristos<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
891.1Schristostitle="Web Operating System">webOS</abbr></a>,
901.7Schristos<a href="https://en.wikipedia.org/wiki/IBM_AIX"><abbr
911.1Schristostitle="Advanced Interactive eXecutive">AIX</abbr></a>,
921.6Schristos<a href="https://www.apple.com/ios"><abbr
931.1Schristostitle="iPhone OS">iOS</abbr></a>,
941.6Schristos<a href="https://www.apple.com/macos">macOS</a>,
951.1Schristos<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
961.6Schristos<a href="https://www.vmssoftware.com">Open<abbr
971.1Schristostitle="Virtual Memory System">VMS</abbr></a>,
981.6Schristos<a href="https://www.oracle.com/database/">Oracle Database</a>, and
991.1Schristos<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
1001.1Schristos<p>
1011.2SchristosEach main entry in the database represents a <dfn>timezone</dfn>
1021.2Schristosfor a set of civil-time clocks that have all agreed since 1970.
1031.2SchristosTimezones are typically identified by continent or ocean and then by the
1041.2Schristosname of the largest city within the region containing the clocks.
1051.1SchristosFor example, <code>America/New_York</code>
1061.1Schristosrepresents most of the <abbr title="United States">US</abbr> eastern time zone;
1071.1Schristos<code>America/Phoenix</code> represents most of Arizona, which
1081.2Schristosuses mountain time without daylight saving time (<abbr>DST</abbr>);
1091.1Schristos<code>America/Detroit</code> represents most of Michigan, which uses
1101.1Schristoseastern time but with different <abbr>DST</abbr> rules in 1975;
1111.1Schristosand other entries represent smaller regions like Starke County,
1121.1SchristosIndiana, which switched from central to eastern time in 1991
1131.1Schristosand switched back in 2006.
1141.1SchristosTo use the database on an extended <a
1151.1Schristoshref="https://en.wikipedia.org/wiki/POSIX"><abbr
1161.1Schristostitle="Portable Operating System Interface">POSIX</abbr></a>
1171.1Schristosimplementation set the <code><abbr>TZ</abbr></code>
1181.1Schristosenvironment variable to the location's full name,
1191.1Schristose.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
1201.1Schristos<p>
1211.2SchristosAssociated with each timezone is a history of offsets from
1221.1Schristos<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
1231.1SchristosTime</a> (<abbr>UT</abbr>), which is <a
1241.1Schristoshref="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
1251.1SchristosTime</a> (<abbr>GMT</abbr>) with days beginning at midnight;
1261.2Schristosfor timestamps after 1960 this is more precisely <a
1271.1Schristoshref="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
1281.1SchristosUniversal Time</a> (<abbr>UTC</abbr>).
1291.1SchristosThe database also records when daylight saving time was in use,
1301.1Schristosalong with some time zone abbreviations such as <abbr>EST</abbr>
1311.1Schristosfor Eastern Standard Time in the <abbr>US</abbr>.</p>
1321.6Schristos</section>
1331.6Schristos
1341.6Schristos<section>
1351.1Schristos<h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2>
1361.1Schristos<p>
1371.1SchristosThe following <a
1381.1Schristoshref="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
1391.1Schristosthe latest release's two
1401.1Schristos<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
1411.1Schristosto a <abbr>GNU</abbr>/Linux or similar host.</p>
1421.2Schristos<pre><code>mkdir tzdb
1431.1Schristoscd tzdb
1441.1Schristos<a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
1451.1Schristoswget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
1461.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 -
1471.1Schristosgzip -dc tzdata-latest.tar.gz | tar -xf -
1481.1Schristos</code></pre>
1491.1Schristos<p>Alternatively, the following shell commands download the same
1501.1Schristosrelease in a single-tarball format containing extra data
1511.1Schristosuseful for regression testing:</p>
1521.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>
1531.1Schristos<a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
1541.1Schristos</code></pre>
1551.1Schristos<p>These commands use convenience links to the latest release
1561.1Schristosof the <code><abbr>tz</abbr></code> database hosted by the
1571.1Schristos<a href="https://www.iana.org/time-zones">Time Zone Database website</a>
1581.1Schristosof the <a href="https://www.iana.org">Internet Assigned Numbers
1591.1SchristosAuthority (IANA)</a>.
1601.1SchristosOlder releases are in files named
1611.1Schristos<code>tzcode<var>V</var>.tar.gz</code>,
1621.1Schristos<code>tzdata<var>V</var>.tar.gz</code>, and
1631.1Schristos<code>tzdb-<var>V</var>.tar.lz</code>,
1641.1Schristoswhere <code><var>V</var></code> is the version.
1651.1SchristosSince 1996, each version has been a four-digit year followed by
1661.1Schristoslower-case letter (<samp>a</samp> through <samp>z</samp>,
1671.1Schristosthen <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
1681.1Schristosthrough <samp>zzz</samp>, and so on).
1691.13SchristosSince version 2022a, each release has been distributed in
1701.10Schristos<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06">POSIX
1711.10Schristosustar interchange format</a>, compressed as described above;
1721.10Schristosolder releases use a nearly-compatible format.
1731.1SchristosSince version 2016h, each release has contained a text file named
1741.1Schristos"<samp>version</samp>" whose first (and currently only) line is the version.
1751.7SchristosOlder releases are <a href="https://ftp.iana.org/tz/releases/">archived</a>,
1761.7Schristosand are also available in an
1771.1Schristos<a href="ftp://ftp.iana.org/tz/releases/"><abbr
1781.1Schristostitle="File Transfer Protocol">FTP</abbr> directory</a> via a
1791.1Schristosless-secure protocol.</p>
1801.1Schristos<p>Alternatively, a development repository of code and data can be
1811.1Schristosretrieved from <a href="https://github.com">GitHub</a> via the shell
1821.1Schristoscommand:</p>
1831.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>
1841.1Schristos</code></pre>
1851.1Schristos<p>
1861.1SchristosSince version 2012e, each release has been tagged in development repositories.
1871.1SchristosUntagged commits are less well tested and probably contain
1881.1Schristosmore errors.</p>
1891.1Schristos<p>
1901.1SchristosAfter obtaining the code and data files, see the
1911.1Schristos<code>README</code> file for what to do next.
1921.1SchristosThe code lets you compile the <code><abbr>tz</abbr></code> source files into
1931.2Schristosmachine-readable binary files, one for each location. The binary files
1941.5Schristosare in a special timezone information format (<dfn><abbr>TZif</abbr></dfn>)
1951.13Schristosspecified by <a href="https://datatracker.ietf.org/doc/html/8536">Internet
1961.5Schristos<abbr>RFC</abbr> 8536</a>.
1971.2SchristosThe code also lets
1981.2Schristosyou read a <abbr>TZif</abbr> file and interpret timestamps for that
1991.1Schristoslocation.</p>
2001.6Schristos</section>
2011.6Schristos
2021.6Schristos<section>
2031.1Schristos<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
2041.1Schristos<p>
2051.1SchristosThe <code><abbr>tz</abbr></code> code and data
2061.1Schristosare by no means authoritative. If you find errors, please
2071.1Schristossend changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
2081.1Schristosthe time zone mailing list. You can also <a
2091.1Schristoshref="https://mm.icann.org/mailman/listinfo/tz">subscribe</a> to it
2101.1Schristosand browse the <a
2111.1Schristoshref="https://mm.icann.org/pipermail/tz/">archive of old
2121.5Schristosmessages</a>.
2131.5Schristos<a href="https://tzdata-meta.timtimeonline.com/">Metadata for mailing list
2141.5Schristosdiscussions</a> and corresponding data changes can be
2151.5Schristosgenerated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>.
2161.5Schristos</p>
2171.1Schristos<p>
2181.1SchristosIf your government plans to change its time zone boundaries or
2191.1Schristosdaylight saving rules, inform <code>tz@iana.org</code> well in
2201.1Schristosadvance, as this will coordinate updates to many cell phones,
2211.8Schristoscomputers, and other devices around the world.
2221.8SchristosThe change should be officially announced at least a year before it affects
2231.8Schristoshow clocks operate; otherwise, there is a good chance that some
2241.8Schristosclocks will operate incorrectly after the change, due
2251.1Schristosto delays in propagating updates to software and data. The shorter
2261.1Schristosthe notice, the more likely clock problems will arise; see "<a
2271.1Schristoshref="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
2281.1Schristosthe Timing of Time Zone Changes</a>" for examples.
2291.8SchristosThe <code><abbr>tz</abbr></code> data can represent planned changes
2301.8Schristosfar into the future, and a long-planned change can easily be reverted
2311.8Schristosor otherwise altered with a year's notice before the change would have
2321.8Schristosaffected clocks.
2331.1Schristos</p>
2341.1Schristos<p>
2351.1SchristosChanges to the <code><abbr>tz</abbr></code> code and data are often
2361.1Schristospropagated to clients via operating system updates, so
2371.1Schristosclient <code><abbr>tz</abbr></code> data can often be corrected by
2381.1Schristosapplying these updates. With GNU/Linux and similar systems, if your
2391.1Schristosmaintenance provider has not yet adopted the
2401.1Schristoslatest <code><abbr>tz</abbr></code> data, you can often short-circuit
2411.1Schristosthe process by tailoring the generic instructions in
2421.1Schristosthe <code><abbr>tz</abbr> README</code> file and installing the latest
2431.1Schristosdata yourself. System-specific instructions for installing the
2441.1Schristoslatest <code><abbr>tz</abbr></code> data have also been published
2451.11Schristosfor <a href="https://developer.ibm.com/articles/au-aix-olson-time-zone/"><abbr>AIX</abbr></a>,
2461.1Schristos<a
2471.10Schristoshref="https://source.android.com/devices/tech/config/timezone-rules">Android</a>,
2481.1Schristos<a
2491.11Schristoshref="https://unicode-org.github.io/icu/userguide/datetime/timezone/"><abbr
2501.1Schristostitle="International Components for Unicode">ICU</abbr></a>,
2511.11Schristos<a href="https://www.ibm.com/support/pages/java-sdk-time-zone-update-utility"><abbr>IBM</abbr>
2521.9SchristosJDK</a>,
2531.9Schristos<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
2541.1Schristoshref="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
2551.9Schristos<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
2561.11Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">OpenJDK/Oracle JDK</a>.
2571.1Schristos</p>
2581.12Schristos<p>Since version 2013a,
2591.12Schristossources for the <code><abbr>tz</abbr></code> database have been
2601.1Schristos<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
2611.1Schristostitle="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
2621.1Schristos<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
2631.1Schristoswith lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
2641.1Schristostitle="linefeed">LF</abbr></a>,
2651.1Schristoswhich can be modified by common text editors such
2661.1Schristosas <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
2671.1Schristos<a href="https://wiki.gnome.org/Apps/Gedit">gedit</a>, and
2681.1Schristos<a href="https://www.vim.org">vim</a>.
2691.1SchristosSpecialized source-file editing can be done via the
2701.1Schristos<a href="https://packagecontrol.io/packages/zoneinfo">Sublime
2711.1Schristoszoneinfo</a> package for <a
2721.1Schristoshref="https://www.sublimetext.com">Sublime Text</a> and the <a
2731.1Schristoshref="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
2741.1Schristoszoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
2751.1SchristosStudio Code</a>.
2761.1Schristos</p>
2771.1Schristos<p>
2781.1SchristosFor further information about updates, please see
2791.13Schristos<a href="https://datatracker.ietf.org/doc/html/rfc6557">Procedures for
2801.1SchristosMaintaining the Time Zone Database</a> (Internet <abbr
2811.1Schristostitle="Request For Comments">RFC</abbr> 6557). More detail can be
2821.7Schristosfound in <a href="theory.html">Theory and pragmatics of the
2831.7Schristos<code><abbr>tz</abbr></code> code and data</a>.
2841.2Schristos<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
2851.2Schristosdisplays changes between recent <code><abbr>tzdb</abbr></code> versions.
2861.1Schristos</p>
2871.6Schristos</section>
2881.6Schristos
2891.6Schristos<section>
2901.1Schristos<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
2911.1Schristos<ul>
2921.1Schristos<li>The article
2931.1Schristos<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
2941.1Schristosan encyclopedic summary.</li>
2951.1Schristos<li><a href="tz-how-to.html">How to Read the
2961.1Schristostz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
2971.1Schristosdatabase format.</li>
2981.1Schristos<li><a
2991.1Schristoshref="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
3001.1Schristosliterary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
3011.1Schristosdatabase's style.</li>
3021.10Schristos<li><a href="https://doi.org/10.1145/3340301.3341125">What time is it:
3031.10Schristosmanaging time in the internet</a> analyzes the database longitudinally.</li>
3041.1Schristos</ul>
3051.6Schristos</section>
3061.6Schristos
3071.6Schristos<section>
3081.1Schristos<h2 id="web">Web sites using recent versions of the
3091.1Schristos<code><abbr>tz</abbr></code> database</h2>
3101.1Schristos<p>
3111.1SchristosThese are listed roughly in ascending order of complexity and fanciness.
3121.1Schristos</p>
3131.1Schristos<ul>
3141.1Schristos<li><a href="https://time.is">Time.is</a> shows locations'
3151.1Schristostime and zones.</li>
3161.1Schristos<li><a href="https://www.timejones.com">TimeJones.com</a>,
3171.1Schristos<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
3181.7Schristos<a href="https://www.worldclock.com">The World Clock</a>
3191.1Schristosare time zone converters.</li>
3201.8Schristos<li><a href="https://timezonedb.com/download">TimeZoneDB Database</a>
3211.8Schristospublishes <code><abbr>tzdb</abbr></code>-derived data in
3221.8Schristos<a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr
3231.8Schristostitle="comma-separated values">CSV</abbr></a> and
3241.8Schristosin <a href="https://en.wikipedia.org/wiki/SQL"><abbr
3251.8Schristostitle="Structured Query Language">SQL</abbr></a> form.</li>
3261.1Schristos<li><a
3271.6Schristoshref="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
3281.1Schristoslets you see the <code><abbr>TZ</abbr></code> values directly.</li>
3291.1Schristos<li><a
3301.13Schristoshref="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
3311.1SchristosTime in 1000 Places</a> uses descriptions of the values.</li>
3321.7Schristos<li><a href="https://home.kpn.nl/vanadovv/time/TZworld.html">Complete
3331.10Schristostimezone information for all countries</a>
3341.10Schristosdisplays tables of <abbr>DST</abbr> rules.
3351.1Schristos<li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
3361.1SchristosWorldwide</a> lets you sort zone names and convert times.</li>
3371.1Schristos<li><a href="https://24timezones.com">24TimeZones</a> has a world
3381.1Schristostime map and a time converter.</li>
3391.1Schristos<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
3401.1Schristoscalculates the current time difference between locations.</li>
3411.13Schristos<li><a href="https://www.wx-now.com">Weather Now</a> and
3421.13Schristos<a href="https://www.thetimenow.com">The Time Now</a> list the weather too.</li>
3431.1Schristos</ul>
3441.6Schristos</section>
3451.6Schristos
3461.6Schristos<section>
3471.1Schristos<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
3481.1Schristos<ul>
3491.1Schristos<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
3501.1Schristos<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
3511.1SchristosDistribution Service (tzdist) working group</a> defined <a
3521.13Schristoshref="https://datatracker.ietf.org/doc/html/rfc7808">TZDIST</a>
3531.1Schristos(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
3541.13Schristosalong with <a href="https://datatracker.ietf.org/doc/html/rfc7809">CalDAV</a>
3551.1Schristos(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
3561.2Schristostransferring time zone data by reference.
3571.8Schristos<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
3581.8Schristosimplementations</a> are available.
3591.2SchristosThe <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
3601.9Schristosmailing list</a> discusses possible extensions.</li>
3611.13Schristos<li>The <a href="https://datatracker.ietf.org/doc/html/rfc5545">
3621.1SchristosInternet Calendaring and Scheduling Core Object Specification
3631.1Schristos(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
3641.1Schristoscovers time zone
3651.1Schristosdata; see its VTIMEZONE calendar component.
3661.1SchristosThe iCalendar format requires specialized parsers and generators; a
3671.13Schristosvariant <a href="https://datatracker.ietf.org/doc/html/rfc6321">xCal</a>
3681.1Schristos(Internet <abbr>RFC</abbr> 6321) uses
3691.1Schristos<a href="https://www.w3.org/XML/"><abbr
3701.1Schristostitle="Extensible Markup Language">XML</abbr></a> format, and a variant
3711.13Schristos<a href="https://datatracker.ietf.org/doc/html/rfc7265">jCal</a>
3721.1Schristos(Internet <abbr>RFC</abbr> 7265)
3731.1Schristosuses <a href="https://www.json.org"><abbr
3741.1Schristostitle="JavaScript Object Notation">JSON</abbr></a> format.</li>
3751.1Schristos</ul>
3761.6Schristos</section>
3771.6Schristos
3781.6Schristos<section>
3791.1Schristos<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
3801.7Schristos<p>Although some of these do not fully support
3811.7Schristos<code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
3821.7Schristosdistributions you can generally work around compatibility problems by
3831.7Schristosrunning the command <code>make rearguard_tarballs</code> and compiling
3841.7Schristosfrom the resulting tarballs instead.</p>
3851.1Schristos<ul>
3861.1Schristos<li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a
3871.1Schristoshref="https://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>
3881.1Schristosprogram that compiles
3891.1Schristos<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
3901.1SchristosVzic is freely
3911.1Schristosavailable under the <a
3921.1Schristoshref="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
3931.1SchristosGeneral Public License (<abbr
3941.1Schristostitle="General Public License">GPL</abbr>)</a>.</li>
3951.1Schristos<li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
3961.1Schristosdatabase conversion utility</a> is like Vzic, except for the <a
3971.6Schristoshref="https://dotnet.microsoft.com">.NET framework</a>
3981.1Schristosand with a <abbr>BSD</abbr>-style license.</li>
3991.1Schristos<li><a
4001.4Schristoshref="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
4011.1Schristoscontains a script <code>parse_olson</code> that compiles
4021.1Schristos<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
4031.1Schristosmodules. It is part of the Perl <a
4041.4Schristoshref="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
4051.4Schristoswhich is freely
4061.1Schristosavailable under both the <abbr>GPL</abbr> and the Perl Artistic
4071.1SchristosLicense. DateTime::TimeZone also contains a script
4081.1Schristos<code>tests_from_zdump</code> that generates test cases for each clock
4091.1Schristostransition in the <code><abbr>tz</abbr></code> database.</li>
4101.1Schristos<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
4111.1SchristosDatabase Parser</a> is a
4121.1Schristos<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and
4131.9Schristosruntime library with <a
4141.13Schristoshref="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">API</a>
4151.9Schristosadopted by
4161.6Schristos<a href="https://en.wikipedia.org/wiki/C++20">C++20</a>,
4171.9Schristosthe current iteration of the C++ standard.
4181.1SchristosIt is freely available under the
4191.1Schristos<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
4201.13Schristos<li><a id="ICU" href="https://icu.unicode.org">International Components for
4211.1SchristosUnicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
4221.1Schristoshref="https://en.wikipedia.org/wiki/Java_%28programming_language%29">Java</a>
4231.1Schristoslibraries for internationalization that
4241.1Schristoshas a compiler from <code><abbr>tz</abbr></code> source
4251.1Schristosand from <abbr title="Common Locale Data Repository">CLDR</abbr> data
4261.1Schristos(mentioned <a href="#CLDR">below</a>)
4271.1Schristosinto an <abbr>ICU</abbr>-specific format.
4281.1Schristos<abbr>ICU</abbr> is freely available under a
4291.1Schristos<abbr>BSD</abbr>-style license.</li>
4301.1Schristos<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
4311.1Schristosthe <a href="https://elixir-lang.org">Elixir</a> language downloads
4321.7Schristosand compiles <code><abbr>tz</abbr></code> source and exposes <abbr
4331.1Schristostitle="Application Program Interface">API</abbr>s for use. It is
4341.1Schristosfreely available under the <abbr>MIT</abbr> license.</li>
4351.1Schristos<li>Java-based compilers and libraries include:
4361.1Schristos<ul>
4371.1Schristos<li>The <a
4381.9Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
4391.1Schristostool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
4401.9Schristos<a href="https://openjdk.java.net/">OpenJDK</a> and
4411.9Schristos<a href="https://jdk.java.net/">Oracle JDK</a>.
4421.9SchristosAlthough its source code is proprietary, its executable is available under the
4431.9Schristos<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
4441.9SchristosTimezone Updater License Agreement</a>.</li>
4451.1Schristos<li>The <a
4461.4Schristoshref="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
4471.6SchristosSE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
4481.4Schristoshref="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
4491.1Schristoswhich is freely available under a <abbr>BSD</abbr>-style license.</li>
4501.4Schristos<li><a href="https://www.joda.org/joda-time/">Joda-Time &ndash; Java date
4511.1Schristosand time <abbr>API</abbr></a> contains a class
4521.1Schristos<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
4531.1Schristos<code><abbr>tz</abbr></code> source into a binary format. It inspired
4541.1SchristosJava 8 <code>java.time</code>, which its users should migrate to once
4551.1Schristosthey can assume Java 8 or later. It is available under the <a
4561.1Schristoshref="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
4571.9Schristos<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
4581.7Schristoshref="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
4591.9Schristosare alternatives to TZUpdater. IANA Updater's license is unclear;
4601.9SchristosZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
4611.4Schristos<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
4621.4Schristostime library for Android</a> and
4631.4Schristos<a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date,
4641.4Schristostime and interval library for Java</a> compile
4651.4Schristos<code><abbr>tz</abbr></code> source into a binary format.
4661.4SchristosTime4A is available under the Apache License and Time4J is
4671.1Schristosavailable under the <a
4681.1Schristoshref="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
4691.1SchristosGeneral Public License (<abbr title="Lesser General Public
4701.1SchristosLicense">LGPL</abbr>)</a>.</li>
4711.1Schristos<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
4721.1SchristosJava-based libraries.</li>
4731.1Schristos</ul>
4741.1Schristos<li><a href="https://nodatime.org">Noda Time &ndash; Date and
4751.1Schristostime <abbr>API</abbr> for .NET</a>
4761.4Schristosis like Joda-Time and Time4J, but for the .NET framework instead of Java.
4771.4SchristosIt is freely available under the Apache License.</li>
4781.8Schristos<li>Many modern
4791.8Schristos<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
4801.8Schristosruntimes support <code><abbr>tz</abbr></code> natively via the
4811.8Schristos<samp>timeZone</samp> option of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"><samp>Intl.DateTimeFormat</samp></a>.
4821.10SchristosThis can be used as-is or with most of the following libraries,
4831.10Schristosmany of which also support runtimes lacking the <samp>timeZone</samp> option.
4841.1Schristos<ul>
4851.8Schristos<li>The <a
4861.8Schristoshref="https://github.com/formatjs/date-time-format-timezone"><samp>Intl.DateTimeFormat</samp>
4871.8Schristostimezone polyfill</a>
4881.8Schristosis freely available under a <abbr>BSD</abbr>-style license.</li>
4891.10Schristos<li>The <a href="https://date-fns.org/">date-fns</a>
4901.10Schristoslibrary manipulates timezone-aware timestamps in browsers and
4911.10Schristosin <a href="https://nodejs.org/en/">Node.js</a>.
4921.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
4931.10Schristos<li><a href="https://github.com/iamkun/dayjs">Day.js</a> is a
4941.10Schristosminimalist replacement for the date and time API of
4951.10Schristosthe <a href="https://momentjs.com/docs/">now-legacy Moment.js</a> date
4961.10Schristosmanipulation library.
4971.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
4981.10Schristos<li><a href="https://moment.github.io/luxon/">Luxon</a> improves
4991.10Schristostimezone support for the <samp>Intl</samp> API.
5001.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5011.1Schristos<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
5021.10SchristosMoment.js plugin.
5031.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5041.8Schristos<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
5051.8SchristosJavaScript library that supports date arithmetic that is time zone
5061.8Schristosaware. It is freely available under the <abbr>MIT</abbr> license.</li>
5071.10Schristos<li><a href="https://www.npmjs.com/package/@tubular/time">@tubular/time</a>
5081.10Schristossupports live <code><abbr>tzdb</abbr></code> updates,
5091.10Schristosastronomical and atomic time, a command-line interface,
5101.10Schristosand full <a
5111.10Schristoshref="https://en.wikipedia.org/wiki/TypeScript">TypeScript</a>.
5121.10SchristosIts companion <a
5131.10Schristoshref="https://www.npmjs.com/package/@tubular/time-tzdb">@tubular/time-tzdb</a>
5141.10Schristoscan generate <abbr>TZif</abbr> and other files, and a companion website
5151.10Schristos<a href="https://tzexplorer.org">Timezone Database Explorer</a> lets you
5161.10Schristosconvert timestamps, view transition histories, and download code and data.
5171.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5181.1Schristos</ul>
5191.10SchristosThe proposed <a
5201.10Schristoshref="https://github.com/tc39/proposal-temporal"><samp>Temporal</samp>
5211.10Schristosobjects</a> let programs access an abstract view of
5221.10Schristos<code><abbr>tzdb</abbr></code> data, and are designed to replace <a
5231.10Schristoshref="https://codeofmatt.com/javascript-date-type-is-horribly-broken/">JavaScript's
5241.10Schristosproblematic <samp>Date</samp> objects</a> when working with dates and times.
5251.1Schristos<li><a href="https://github.com/JuliaTime/">JuliaTime</a> contains a
5261.1Schristoscompiler from <code><abbr>tz</abbr></code> source into
5271.1Schristos<a href="https://julialang.org/">Julia</a>. It is freely available
5281.1Schristosunder the <abbr>MIT</abbr> license.</li>
5291.6Schristos<li><a href="https://github.com/pavkam/tzdb"><abbr>TZDB</abbr> &ndash;
5301.6Schristos<abbr>IANA</abbr> Time Zone Database for Delphi/<abbr
5311.6Schristostitle="Free Pascal Compiler">FPC</abbr></a>
5321.2Schristoscompiles from <code><abbr>tz</abbr></code> source into
5331.2Schristos<a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
5341.2Schristosas compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
5351.2Schristosand <a
5361.2Schristoshref="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
5371.2SchristosIt is freely available under a <abbr>BSD</abbr>-style license.</li>
5381.1Schristos<li><a href="http://pytz.sourceforge.net">pytz &ndash; World Timezone
5391.1SchristosDefinitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
5401.1Schristos<a href="https://www.python.org">Python</a>.
5411.9SchristosIt is freely available under a <abbr>BSD</abbr>-style license.
5421.11SchristosIn code that can assume Python 3.6 or later it is largely superseded; see <a
5431.11Schristoshref="https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html">pytz:
5441.11SchristosThe Fastest Footgun in the West</a>.</li>
5451.1Schristos<li><a href="https://tzinfo.github.io">TZInfo &ndash;
5461.1SchristosRuby Timezone Library</a>
5471.1Schristoscompiles <code><abbr>tz</abbr></code> source into
5481.1Schristos<a href="https://www.ruby-lang.org/en/">Ruby</a>.
5491.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5501.13Schristos<li>The <a href="https://www.squeaksource.com/Chronos/">Chronos Date/Time
5511.1SchristosLibrary</a> is
5521.1Schristosa <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
5531.1Schristoslibrary that compiles <code><abbr>tz</abbr></code> source into a time
5541.1Schristoszone repository whose format
5551.1Schristosis either proprietary or an <abbr>XML</abbr>-encoded
5561.1Schristosrepresentation.</li>
5571.1Schristos<li><a id="Tcl" href="https://tcl.tk">Tcl</a>
5581.1Schristoscontains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
5591.1Schristossource into text files, along with a runtime that can read those
5601.1Schristosfiles. Tcl is freely available under a <abbr>BSD</abbr>-style
5611.1Schristoslicense.</li>
5621.1Schristos</ul>
5631.6Schristos</section>
5641.6Schristos
5651.6Schristos<section>
5661.2Schristos<h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
5671.1Schristos<ul>
5681.1Schristos<li>The <a
5691.1Schristoshref="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
5701.1SchristosLibrary</a>
5711.1Schristoshas an independent, thread-safe implementation of
5721.2Schristosa <abbr>TZif</abbr> file reader.
5731.1SchristosThis library is freely available under the LGPL
5741.1Schristosand is widely used in <abbr>GNU</abbr>/Linux systems.</li>
5751.1Schristos<li><a href="https://www.gnome.org">GNOME</a>'s
5761.1Schristos<a href="https://developer.gnome.org/glib/">GLib</a> has
5771.2Schristosa <abbr>TZif</abbr> file reader written in C that
5781.1Schristoscreates a <code>GTimeZone</code> object representing sets
5791.1Schristosof <abbr>UT</abbr> offsets.
5801.1SchristosIt is freely available under the <abbr>LGPL</abbr>.</li>
5811.1Schristos<li>The
5821.1Schristos<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
5831.1Schristos<code>baltzo::TimeZoneUtil</code> component contains a C++
5841.2Schristosimplementation of a <abbr>TZif</abbr> file reader. It is freely available under
5851.1Schristosthe Apache License.</li>
5861.1Schristos<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
5871.1Schristoslibrary that translates between <abbr>UT</abbr> and civil time and
5881.2Schristoscan read <abbr>TZif</abbr> files. It is freely available under the Apache
5891.1SchristosLicense.</li>
5901.1Schristos<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
5911.2Schristoslibrary that reads <abbr>TZif</abbr> files and converts
5921.2Schristostimestamps from one time zone or format to another.
5931.1SchristosIt is used by <a href="https://secure.php.net"><abbr
5941.1Schristostitle="PHP: Hypertext Preprocessor">PHP</abbr></a>,
5951.1Schristos<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
5961.1Schristosand <a href="https://www.mongodb.com">MongoDB</a>.
5971.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5981.1Schristos<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
5991.2Schristos<abbr>TZif</abbr> file reader.</li>
6001.4Schristos<li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
6011.1SchristosDateTime::TimeZone::Tzfile</a>
6021.2Schristosis a <abbr>TZif</abbr> file reader written in Perl.
6031.1SchristosIt is freely available under the same terms as Perl
6041.1Schristos(dual <abbr>GPL</abbr> and Artistic license).</li>
6051.9Schristos<li>Python has a <a id="python-zoneinfo"
6061.11Schristoshref="https://docs.python.org/3/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
6071.8Schristosclass</a> that reads <abbr>TZif</abbr> data and creates objects
6081.8Schristosthat represent <code><abbr>tzdb</abbr></code> timezones.
6091.8SchristosPython is freely available under the
6101.11Schristos<a href="https://docs.python.org/3/license.html">Python Software Foundation
6111.8SchristosLicense</a>.
6121.9SchristosA companion <a id="pypi-tzdata" href="https://pypi.org/">PyPI</a> module
6131.8Schristos<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
6141.8Schristossupplies TZif data if the underlying system data cannot be found;
6151.8Schristosit is freely available under the Apache License.</li>
6161.1Schristos<li>The
6171.1Schristospublic-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
6181.1Schristoslibrary contains a Python tool that
6191.2Schristosconverts <abbr>TZif</abbr> data into
6201.1Schristos<abbr>JSON</abbr>-format data suitable for use
6211.1Schristosin its JavaScript library for time zone conversion. Dates before 1970
6221.1Schristosare not supported.</li>
6231.1Schristos<li>The <a
6241.1Schristoshref="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
6251.1Schristospackage contains <a href="https://www.haskell.org">Haskell</a> code that
6261.2Schristosparses and uses <abbr>TZif</abbr> data. It is freely
6271.1Schristosavailable under a <abbr>BSD</abbr>-style license.</li>
6281.1Schristos</ul>
6291.6Schristos</section>
6301.6Schristos
6311.6Schristos<section>
6321.1Schristos<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
6331.1Schristos<ul>
6341.1Schristos<li><a href="https://foxclocks.org">FoxClocks</a>
6351.1Schristosis an extension for <a href="https://www.google.com/chrome/">Google
6361.1SchristosChrome</a> and for <a
6371.11Schristoshref="https://wiki.mozilla.org/Modules/Toolkit">Mozilla
6381.1SchristosToolkit</a> applications like <a
6391.1Schristoshref="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
6401.1Schristoshref="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
6411.1SchristosIt displays multiple clocks in the application window, and has a mapping
6421.1Schristosinterface to <a href="https://www.google.com/earth/">Google Earth</a>.
6431.1SchristosIt is freely available under the <abbr>GPL</abbr>.</li>
6441.1Schristos<li><a href="https://golang.org">Go programming language</a>
6451.1Schristosimplementations contain a copy of a 32-bit subset of a recent
6461.1Schristos<code><abbr>tz</abbr></code> database in a
6471.1SchristosGo-specific format.</li>
6481.1Schristos<li>Microsoft Windows 8.1
6491.1Schristosand later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
6501.3Schristosdata (mentioned <a href="#CLDR">below</a>) used by the
6511.3Schristos<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
6521.3Schristos<a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
6531.3Schristos<a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
6541.3Schristos<a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
6551.1Schristos<a id="System.TimeZoneInfo"
6561.1Schristoshref="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
6571.1SchristosWindows Time Zones with <code>System.TimeZoneInfo</code></a> describes
6581.1Schristosthe older, proprietary method of Microsoft Windows 2000 and later,
6591.1Schristoswhich stores time zone data in the
6601.1Schristos<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
6611.1Schristos<a
6621.1Schristoshref="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone &rarr;
6631.1SchristosTzid table</a> or <a
6641.6Schristoshref="https://github.com/unicode-org/cldr/blob/master/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
6651.1Schristosfile</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
6661.1Schristosto <code><abbr>tz</abbr></code> names.
6671.3SchristosThese mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
6681.3Schristosor the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
6691.1Schristos<li><a
6701.1Schristoshref="https://www.oracle.com/java/index.html">Oracle
6711.1SchristosJava</a> contains a copy of a subset of a recent
6721.1Schristos<code><abbr>tz</abbr></code> database in a
6731.1SchristosJava-specific format.</li>
6741.1Schristos</ul>
6751.6Schristos</section>
6761.6Schristos
6771.6Schristos<section>
6781.1Schristos<h2 id="other-dbs">Other time zone databases</h2>
6791.1Schristos<ul>
6801.1Schristos<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
6811.4Schristosis Astrodienst's Web version of Shanks and Pottenger's out-of-print
6821.4Schristostime zone history atlases
6831.4Schristos<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
6841.9Schristos<a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
6851.4SchristosAlthough these extensive atlases
6861.4Schristos<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
6871.4Schristossources for much of the older <code><abbr>tz</abbr></code> data</a>,
6881.4Schristosthey are unreliable as Shanks appears to have
6891.1Schristosguessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
6901.1Schristossources and do not indicate which entries are guesswork.</li>
6911.1Schristos<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
6921.1Schristosits own <code>tztab</code>(4) format.</li>
6931.1Schristos<li>Microsoft Windows has proprietary data mentioned
6941.1Schristos<a href="#System.TimeZoneInfo">above</a>.</li>
6951.1Schristos<li><a href="https://www.worldtimeserver.com">World Time Server</a>
6961.1Schristosis another time zone database.</li>
6971.1Schristos<li>The <a
6981.1Schristoshref="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
6991.1SchristosSchedules Information Manual</a> of the
7001.1SchristosInternational Air Transport Association
7011.1Schristosgives current time zone rules for airports served by commercial aviation.</li>
7021.1Schristos</ul>
7031.6Schristos</section>
7041.6Schristos
7051.6Schristos<section>
7061.1Schristos<h2 id="maps">Maps</h2>
7071.1Schristos<ul>
7081.9Schristos<li>The <a
7091.9Schristoshref="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
7101.9Schristosand Regional Maps section</a> of <em>The World Factbook</em>, published by the
7111.9Schristos<a href="https://www.cia.gov">US Central Intelligence
7121.9SchristosAgency (<abbr
7131.9Schristostitle="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
7141.9Schristoszone map; the
7151.1Schristos<a
7161.6Schristoshref="https://legacy.lib.utexas.edu/maps/world.html">Perry&ndash;Casta&ntilde;eda
7171.1SchristosLibrary Map Collection</a>
7181.1Schristosof the University of Texas at Austin has copies of
7191.1Schristosrecent editions.
7201.1SchristosThe pictorial quality is good,
7211.1Schristosbut the maps do not indicate daylight saving time,
7221.1Schristosand parts of the data are a few years out of date.</li>
7231.6Schristos<li><a href="https://www.worldtimezone.com">World Time Zone Map
7241.6Schristoswith current time</a>
7251.1Schristoshas several fancy time zone maps; it covers Russia particularly well.
7261.1SchristosThe maps' pictorial quality is not quite as good as the
7271.1Schristos<abbr>CIA</abbr>'s
7281.1Schristosbut the maps are more up to date.</li>
7291.1Schristos<li><a
7301.1Schristoshref="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
7311.1Schristosmuch is time wrong around the world?</a> maps the difference between
7321.1Schristosmean solar and standard time, highlighting areas such as western China
7331.1Schristoswhere the two differ greatly. It's a bit out of date, unfortunately.</li>
7341.1Schristos</ul>
7351.6Schristos</section>
7361.6Schristos
7371.6Schristos<section>
7381.1Schristos<h2 id="boundaries">Time zone boundaries</h2>
7391.2Schristos<p>Geographical boundaries between timezones are available
7401.9Schristosfrom several <a
7411.9Schristoshref="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
7421.9Schristosgeolocation</a>
7431.1Schristosservices and other sources.</p>
7441.1Schristos<ul>
7451.1Schristos<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
7461.1SchristosBoundary Builder</a> extracts
7471.1Schristos<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
7481.2Schristosboundaries of <code><abbr>tzdb</abbr></code> timezones.
7491.1SchristosIts code is freely available under the <abbr>MIT</abbr> license, and
7501.1Schristosits data entries are freely available under the
7511.1Schristos<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
7521.1SchristosOpen Database License</a>. The maps' borders appear to be quite accurate.</li>
7531.1Schristos<li>Programmatic interfaces that map geographical coordinates via tz_world to
7541.2Schristos<code><abbr>tzdb</abbr></code> timezones include:
7551.1Schristos<ul>
7561.1Schristos<li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is
7571.1Schristoswritten in <a
7581.1Schristoshref="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a>
7591.1Schristosand is freely available under the <abbr>MIT</abbr> license.</li>
7601.1Schristos<li>The <a href="https://github.com/bradfitz/latlong">latlong package</a>
7611.1Schristosis written in Go and is freely available under the Apache License.</li>
7621.1Schristos<li><a href="https://github.com/drtimcooper/LatLongToTimezone">LatLongToTimezone</a>,
7631.1Schristosin both Java and
7641.1Schristos<a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift</a>
7651.1Schristosform, is freely available under the MIT license.</li>
7661.10Schristos<li>For Node.js,
7671.1Schristosthe <a href="https://www.npmjs.com/package/geo-tz">geo-tz module</a>
7681.1Schristosis freely available under the MIT license, and
7691.1Schristosthe <a href="https://www.npmjs.com/package/tz-lookup">tz-lookup module</a>
7701.1Schristosis in the public domain.</li>
7711.1Schristos<li>The <a
7721.1Schristoshref="https://github.com/MrMinimal64/timezonefinder">timezonefinder</a>
7731.1Schristoslibrary for Python is freely available under the MIT license.
7741.1Schristos<li>The <a
7751.1Schristoshref="https://github.com/gunyarakun/timezone_finder">timezone_finder</a>
7761.1Schristoslibrary for Ruby is freely available under the MIT license.</li>
7771.1Schristos</ul></li>
7781.1Schristos<li>Free access via a network API, if you register a key, is provided by
7791.4Schristosthe <a
7801.4Schristoshref="https://www.geonames.org/export/web-services.html#timezone">GeoNames
7811.4SchristosTimezone web service</a>, the <a
7821.4Schristoshref="https://developers.google.com/maps/documentation/timezone/intro">Google
7831.4SchristosMaps Time Zone API</a>, and
7841.8Schristosthe <a href="https://timezonedb.com/api">TimeZoneDB API</a>.
7851.1SchristosCommercial network API access is provided
7861.1Schristosby <a href="https://askgeo.com">AskGeo</a>
7871.1Schristosand <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
7881.1Schristos</li>
7891.1Schristos<li>"<a
7901.1Schristoshref="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
7911.1Schristosto get a time zone from a location using latitude and longitude
7921.1Schristoscoordinates?</a>" discusses other geolocation possibilities.</li>
7931.1Schristos<li><a href="http://statoids.com/statoids.html">Administrative
7941.1SchristosDivisions of Countries ("Statoids")</a> lists
7951.1Schristospolitical subdivision data related to time zones.</li>
7961.7Schristos<li><a href="https://home.kpn.nl/vanadovv/time/Multizones.html">Time
7971.1Schristoszone boundaries for multizone countries</a> summarizes legal
7981.1Schristosboundaries between time zones within countries.</li>
7991.13Schristos<li><a href="https://manifold.net/info/freestuff.shtml">Manifold Software
8001.1Schristos&ndash; GIS and Database Tools</a> includes a Manifold-format map of
8011.1Schristosworld time zone boundaries distributed under the
8021.1Schristos<abbr>GPL</abbr>.</li>
8031.1Schristos<li>A ship within the <a
8041.1Schristoshref="https://en.wikipedia.org/wiki/Territorial_waters">territorial
8051.1Schristoswaters</a> of any nation uses that nation's time. In international
8061.1Schristoswaters, time zone boundaries are meridians 15&deg; apart, except that
8071.1Schristos<abbr>UT</abbr>&minus;12 and <abbr>UT</abbr>+12 are each 7.5&deg;
8081.1Schristoswide and are separated by
8091.1Schristosthe 180&deg; meridian (not by the International Date Line, which is
8101.1Schristosfor land and territorial waters only). A captain can change ship's
8111.1Schristosclocks any time after entering a new time zone; midnight changes are
8121.1Schristoscommon.</li>
8131.1Schristos</ul>
8141.6Schristos</section>
8151.6Schristos
8161.6Schristos<section>
8171.1Schristos<h2 id="civil">Civil time concepts and history</h2>
8181.1Schristos<ul>
8191.1Schristos<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
8201.1SchristosWalk through Time</a>
8211.1Schristossurveys the evolution of timekeeping.</li>
8221.4Schristos<li>The history of daylight saving time is surveyed in <a
8231.4Schristoshref="http://www.webexhibits.org/daylightsaving/">About Daylight
8241.4SchristosSaving Time &ndash; History, rationale, laws &amp; dates</a> and summarized in
8251.4Schristos<a href="http://seizethedaylight.com/dst/">A Brief
8261.4SchristosHistory of Daylight Saving Time</a>.</li>
8271.4Schristos<li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
8281.4SchristosLords</a> discusses how authoritarians manipulate civil time.</li>
8291.1Schristos<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
8301.1Schristoscontains guidelines and best practices for software applications that
8311.1Schristosdeal with civil time.</li>
8321.1Schristos<li><a href="https://www.staff.science.uu.nl/~gent0113/idl/idl.htm">A History of
8331.1Schristosthe International Date Line</a> tells the story of the most important
8341.1Schristostime zone boundary.</li>
8351.1Schristos<li><a href="http://statoids.com/tconcept.html">Basic Time
8361.1SchristosZone Concepts</a> discusses terminological issues behind time zones.</li>
8371.1Schristos</ul>
8381.6Schristos</section>
8391.6Schristos
8401.6Schristos<section>
8411.1Schristos<h2 id="national">National histories of legal time</h2>
8421.1Schristos<dl>
8431.1Schristos<dt>Australia</dt>
8441.6Schristos<dd>The Parliamentary Library commissioned a <a
8451.1Schristoshref="https://www.aph.gov.au/binaries/library/pubs/rp/2009-10/10rp10.pdf">research
8461.1Schristospaper on daylight saving time in Australia</a>.
8471.1SchristosThe Bureau of Meteorology publishes a list of <a
8481.1Schristoshref="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
8491.1SchristosDates of Daylight Savings Time within Australia</a>.</dd>
8501.1Schristos<dt>Belgium</dt>
8511.7Schristos<dd>The Royal Observatory of Belgium maintains a table of time in
8521.7SchristosBelgium (in
8531.7Schristos<a href="https://www.astro.oma.be/GENERAL/INFO/nli001a.html"
8541.7Schristoshreflang="nl">Dutch</a> and <a
8551.7Schristoshref="https://www.astro.oma.be/GENERAL/INFO/fri001a.html"
8561.7Schristoshreflang="fr">French</a>).</dd>
8571.1Schristos<dt>Brazil</dt>
8581.1Schristos<dd>The Time Service Department of the National Observatory
8591.1Schristosrecords <a href="http://pcdsh01.on.br/DecHV.html"
8601.1Schristoshreflang="pt-BR">Brazil's daylight saving time decrees (in
8611.1SchristosPortuguese)</a>.</dd>
8621.1Schristos<dt>Canada</dt>
8631.1Schristos<dd>National Research Council Canada publishes current
8641.1Schristosand some older information about <a
8651.6Schristoshref="https://nrc.canada.ca/en/certifications-evaluations-standards/canadas-official-time/time-zones-daylight-saving-time">time
8661.6Schristoszones and daylight saving time</a>.</dd>
8671.1Schristos<dt>Chile</dt>
8681.1Schristos<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
8691.11Schristos<a href="https://www.horaoficial.cl/historia_hora.php" hreflang="es">history of
8701.1SchristosChile's official time (in Spanish)</a>.</dd>
8711.3Schristos<dt>China</dt>
8721.3Schristos<dd>The Hong Kong Observatory maintains a
8731.7Schristos<a href="https://www.hko.gov.hk/en/gts/time/Summertime.htm">history of
8741.3Schristos summer time in Hong Kong</a>,
8751.3Schristosand Macau's Meteorological and Geophysical Bureau maintains a <a
8761.7Schristoshref="https://www.smg.gov.mo/en/subpage/224/page/174">similar
8771.3Schristoshistory for Macau</a>.
8781.3SchristosUnfortunately the latter is incomplete and has errors.</dd>
8791.1Schristos<dt>Czech Republic</dt>
8801.1Schristos<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
8811.1Schristoshreflang="cs">When daylight saving time starts and ends (in Czech)</a>
8821.10Schristossummarizes and cites historical <abbr>DST</abbr> regulations.</dd>
8831.1Schristos<dt>Germany</dt>
8841.1Schristos<dd>The National Institute for Science and Technology maintains the <a
8851.1Schristoshref="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
8861.1Schristosof Legal Time in Germany</a>.</dd>
8871.1Schristos<dt>Israel</dt>
8881.1Schristos<dd>The Interior Ministry periodically issues <a
8891.1Schristoshref="ftp://ftp.cs.huji.ac.il/pub/tz/announcements"
8901.1Schristoshreflang="he">announcements (in Hebrew)</a>.</dd>
8911.2Schristos<dt>Malaysia</dt>
8921.2Schristos<dd>See Singapore <a href="#Singapore">below</a>.</dd>
8931.1Schristos<dt>Mexico</dt>
8941.1Schristos<dd>The Investigation and Analysis Service of the Mexican Library of
8951.1SchristosCongress has published a <a
8961.13Schristoshref="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
8971.1Schristoshreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
8981.1Schristos<dt>Netherlands</dt>
8991.1Schristos<dd><a href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm"
9001.1Schristoshreflang="nl">Legal time in the Netherlands (in Dutch)</a>
9011.1Schristoscovers the history of local time in the Netherlands from ancient times.</dd>
9021.1Schristos<dt>New Zealand</dt>
9031.1Schristos<dd>The Department of Internal Affairs maintains a brief <a
9041.1Schristoshref="https://www.dia.govt.nz/Daylight-Saving-History">History of
9051.6SchristosDaylight Saving</a>.</dd>
9061.10Schristos<dt>Portugal</dt>
9071.10Schristos<dd>The Lisbon Astronomical Observatory publishes a
9081.10Schristos<a href="https://oal.ul.pt/hora-legal/" hreflang="pt">history of
9091.10Schristoslegal time (in Portuguese)</a>.</dd>
9101.1Schristos<dt>Singapore</dt>
9111.1Schristos<dd><a id="Singapore"
9121.7Schristoshref="https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html">Why
9131.1Schristosis Singapore in the "Wrong" Time Zone?</a> details the
9141.1Schristoshistory of legal time in Singapore and Malaysia.</dd>
9151.1Schristos<dt>United Kingdom</dt>
9161.1Schristos<dd><a
9171.1Schristoshref="https://www.polyomino.org.uk/british-time/">History of
9181.1Schristoslegal time in Britain</a> discusses in detail the country
9191.6Schristoswith perhaps the best-documented history of clock adjustments.</dd>
9201.1Schristos<dt>United States</dt>
9211.1Schristos<dd>The Department of Transportation's <a
9221.1Schristoshref="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
9231.1SchristosTime Zone Proceedings</a> lists changes to time zone boundaries.</dd>
9241.1Schristos<dt>Uruguay</dt>
9251.1Schristos<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
9261.1SchristosNavy (SOHMA) publishes an annual <a
9271.13Schristoshref="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac
9281.1Schristos(in Spanish)</a>.</dd>
9291.1Schristos</dl>
9301.6Schristos</section>
9311.6Schristos
9321.6Schristos<section>
9331.7Schristos<h2 id="costs">Costs and benefits of time shifts</h2>
9341.7Schristos<p>Various sources argue for and against daylight saving time and time
9351.7Schristoszone shifts, and many scientific studies have been conducted. This
9361.8Schristossection summarizes reviews and position statements based on
9371.8Schristosscientific literature in the area.</p>
9381.7Schristos<ul>
9391.7Schristos<li>Carey RN, Sarma KM.
9401.7Schristos<a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of
9411.7Schristosdaylight saving time on road traffic collision risk: a systematic
9421.7Schristosreview</a>.
9431.7Schristos<em>BMJ Open.</em> 2017;7(6):e014319. doi:<a href="https://doi.org/10.1136/bmjopen-2016-014319">10.1136/bmjopen-2016-014319</a>.
9441.7SchristosThis reviews research literature and concludes that the evidence
9451.7Schristosneither supports nor refutes road safety benefits from
9461.7Schristosshifts in time zones.</li>
9471.7Schristos<li>Havranek T, Herman D, Irsova D.
9481.13Schristos<a href="https://www.iaee.org/en/publications/ejarticle.aspx?id=3051">Does
9491.13Schristosdaylight saving save electricity? A meta-analysis.</a>
9501.13Schristos<em>Energy J.</em> 2018;39(2):35&ndash;61.
9511.7Schristosdoi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.thav</a>.
9521.7SchristosThis analyzes research literature and concludes, "Electricity savings
9531.7Schristosare larger for countries farther away from the equator, while
9541.10Schristossubtropical regions consume more electricity because of <abbr>DST</abbr>."</li>
9551.8Schristos<li>Rishi MA, Ahmed O, Barrantes Perez JH <em>et al</em>.
9561.8Schristos<a href="https://jcsm.aasm.org/doi/10.5664/jcsm.8780">Daylight saving time:
9571.8Schristosan American Academy of Sleep Medicine position statement</a>.
9581.8Schristos<em>J Clin Sleep Med.</em>
9591.8Schristos2020;<a href="https://doi.org/10.5664/jcsm.8780">10.5664/jcsm.8780</a>.
9601.8SchristosThis argues for permanent standard time due to health risks of both
9611.10Schristos<abbr>DST</abbr> transitions and permanent <abbr>DST</abbr>.</li>
9621.13Schristos<li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
9631.13Schristos<a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7205184/">Why
9641.13Schristosshould we abolish Daylight Saving Time?</a>
9651.13Schristos<em>J Biol Rhythms</em>. 2019;34(3):227&ndash;230.
9661.13Schristosdoi:<a href="https://doi.org/10.1177/0748730419854197">10.1177/0748730419854197</a>.
9671.13SchristosThis position paper of the Society for Research on Biological Rhythms
9681.13Schristosopposes DST changes and permanent DST, and advocates that governments adopt
9691.13Schristos"permanent Standard Time for the health and safety of their citizens".</li>
9701.7Schristos</ul>
9711.7Schristos</section>
9721.7Schristos
9731.7Schristos<section>
9741.1Schristos<h2 id="precision">Precision timekeeping</h2>
9751.1Schristos<ul>
9761.1Schristos<li><a
9771.1Schristoshref="http://leapsecond.com/hpan/an1289.pdf">The
9781.1SchristosScience of Timekeeping</a> is a thorough introduction
9791.1Schristosto the theory and practice of precision timekeeping.</li>
9801.1Schristos<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
9811.1SchristosTime 2016</a> contains several freely-readable papers.</li>
9821.13Schristos<li><a href="https://www.ntp.org"><abbr
9831.1Schristostitle="Network Time Protocol">NTP</abbr>: The Network
9841.1SchristosTime Protocol</a> (Internet <abbr>RFC</abbr> 5905)
9851.1Schristosdiscusses how to synchronize clocks of
9861.1SchristosInternet hosts.</li>
9871.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>
9881.2Schristosfamily of software algorithms can achieve accuracy to a few tens of
9891.2Schristosnanoseconds in scalable server farms without special hardware.</li>
9901.1Schristos<li>The <a
9911.1Schristoshref="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
9921.1SchristosTime Protocol</a> (<abbr
9931.1Schristostitle="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
9941.2Schristoscan achieve submicrosecond clock accuracy on a local area network
9951.2Schristoswith special-purpose hardware.</li>
9961.1Schristos<li><a
9971.13Schristoshref="https://datatracker.ietf.org/doc/html/rfc4833">Timezone
9981.1SchristosOptions for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
9991.1Schristos(Internet <abbr>RFC</abbr> 4833)
10001.1Schristosspecifies a <a
10011.1Schristoshref="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
10021.1Schristosoption for a server to configure
10031.1Schristosa client's time zone and daylight saving settings automatically.</li>
10041.11Schristos<li><a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
10051.11SchristosScales</a> describes astronomical time scales like
10061.1Schristos<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
10071.1Schristos<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
10081.1Schristos<abbr title="Barycentric Dynamic Time">TDB</abbr>.
10091.1Schristos<li>The <a href="https://www.iau.org"><abbr
10101.1Schristostitle="International Astronomical Union">IAU</abbr></a>'s <a
10111.13Schristoshref="https://www.iausofa.org"><abbr
10121.1Schristostitle="Standards Of Fundamental Astronomy">SOFA</abbr></a>
10131.1Schristoscollection contains C and <a
10141.1Schristoshref="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
10151.1Schristoscode for converting among time scales like
10161.1Schristos<abbr title="International Atomic Time">TAI</abbr>,
10171.1Schristos<abbr>TDB</abbr>, <abbr>TDT</abbr> and
10181.13Schristos<abbr>UTC</abbr>. It is freely available under the
10191.13Schristos<a href="https://www.iausofa.org/tandc.html">SOFA license</a>.</li>
10201.1Schristos<li><a
10211.1Schristoshref="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
10221.1Schristos&ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
10231.1Schristosdiverse local time
10241.1Schristosscales used by each landed mission on Mars.</li>
10251.1Schristos<li><a href="http://leapsecond.com">LeapSecond.com</a> is
10261.1Schristosdedicated not only to leap seconds but to precise time and frequency
10271.1Schristosin general. It covers the state of the art in amateur timekeeping, and
10281.1Schristoshow the art has progressed over the past few decades.</li>
10291.7Schristos<li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
10301.7Schristoshref="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
10311.7Schristosand time-signal emissions</a>, International Telecommunication Union &ndash;
10321.7SchristosRadiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
10331.1Schristos<li><a
10341.1Schristoshref="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
10351.1Schristostitle="International Earth Rotation and Reference Systems Service">IERS</abbr>
10361.1SchristosBulletins</a> contains official publications of the International
10371.1SchristosEarth Rotation and Reference Systems Service, which decides when leap
10381.4Schristosseconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
10391.9Schristosvia an optional "<code>right</code>" configuration where a computer's internal
10401.9Schristos<code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
10411.9Schristosas opposed to the default "<code>posix</code>" configuration
10421.9Schristoswhere the internal clock ignores leap seconds.
10431.9SchristosThe two configurations agree for timestamps starting with 1972-01-01 00:00:00
10441.9Schristos<abbr>UTC</abbr> (<code>time_t</code> 63&thinsp;072&thinsp;000) and diverge for
10451.9Schristostimestamps starting with <code>time_t</code> 78&thinsp;796&thinsp;800,
10461.9Schristoswhich corresponds to the first leap second
10471.9Schristos1972-06-30 23:59:60 <abbr>UTC</abbr> in the "<code>right</code>" configuration,
10481.9Schristosand to
10491.9Schristos1972-07-01 00:00:00 <abbr>UTC</abbr> in the "<code>posix</code>" configuration.
10501.9SchristosIn practice the two configurations also agree for timestamps before
10511.9Schristos1972 even though the historical situation is messy, partly because
10521.9Schristosneither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
10531.9Schristosis well-defined for sufficiently-old timestamps.</li>
10541.1Schristos<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
10551.1Schristosdiscusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
10561.1Schristosleap second so that they disagree with <abbr>UTC</abbr> by at most a
10571.1Schristoshalf second, even though every <abbr>POSIX</abbr> minute has exactly
10581.4Schristossixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
10591.1Schristos"<code>posix</code>" configuration, is <a
10601.1Schristoshref="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
10611.12Schristosthe <abbr>NTP</abbr> reference implementation, <a
10621.12Schristoshref="https://github.com/google/unsmear">supports</a> conversion between
10631.12Schristos<abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
10641.7Schristoscloud service providers. However, according to
10651.13Schristos<a href="https://datatracker.ietf.org/doc/html/rfc8633#section-3.7.1">&sect;3.7.1 of
10661.7SchristosNetwork Time Protocol Best Current Practices</a>
10671.7Schristos(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
10681.9Schristosapplications requiring accurate <abbr>UTC</abbr> or civil time,
10691.7Schristosand is intended for use only in single, well-controlled environments.</li>
10701.1Schristos<li>The <a
10711.1Schristoshref="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
10721.1SchristosSecond Discussion List</a> covers <a
10731.1Schristoshref="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
10741.1Schristosand Klepczynski's 1999 proposal to discontinue leap seconds</a>,
10751.1Schristosdiscussed further in
10761.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
10771.1Schristosleap second: its history and possible future</a>.
10781.1Schristos<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
10791.1Schristosmight be redefined
10801.1Schristoswithout Leap Seconds</a> gives pointers on this
10811.1Schristoscontentious issue, which was active until 2015 and could become active
10821.1Schristosagain.</li>
10831.1Schristos</ul>
10841.6Schristos</section>
10851.6Schristos
10861.6Schristos<section>
10871.1Schristos<h2 id="notation">Time notation</h2>
10881.1Schristos<ul>
10891.13Schristos<li>The <a id="CLDR" href="https://cldr.unicode.org">Unicode Common Locale Data
10901.1SchristosRepository (<abbr>CLDR</abbr>) Project</a> has localizations for time
10911.1Schristoszone names, abbreviations, identifiers, and formats. For example, it
10921.1Schristoscontains French translations for "Eastern European Summer Time",
10931.1Schristos"<abbr title="Eastern European Summer Time">EEST</abbr>", and
10941.1Schristos"Bucharest". Its
10951.1Schristos<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
10961.1Schristoscharts</a> show these values for many locales. Data values are available in
10971.1Schristosboth <abbr title="Locale Data Markup Language">LDML</abbr>
10981.1Schristos(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
10991.1Schristos<li>
11001.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
11011.6Schristosthe international standard date and time notation</a> covers
11021.1Schristos<a
11031.6Schristoshref="https://www.iso.org/standard/70907.html"><em><abbr
11041.6Schristostitle="International Organization for Standardization">ISO</abbr>
11051.6Schristos8601-1:2019 &ndash; Date and time &ndash; Representations for information
11061.6Schristosinterchange &ndash; Part 1: Basic rules</em></a>.</li>
11071.1Schristos<li>
11081.6Schristos<a href="https://www.w3.org/TR/xmlschema/#dateTime"><abbr>XML</abbr>
11091.1SchristosSchema: Datatypes &ndash; dateTime</a> specifies a format inspired by
11101.1Schristos<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
11111.13Schristos<li><a href="https://datatracker.ietf.org/doc/html/rfc5322#section-3.3">&sect;3.3 of
11121.1SchristosInternet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
11131.1Schristosspecifies the time notation used in email and <a
11141.1Schristoshref="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
11151.1Schristosheaders.</li>
11161.1Schristos<li>
11171.13Schristos<a href="https://datatracker.ietf.org/doc/html/rfc3339">Date and Time
11181.1Schristoson the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
11191.1Schristosspecifies an <abbr>ISO</abbr> 8601
11201.1Schristosprofile for use in new Internet
11211.1Schristosprotocols.</li>
11221.1Schristos<li>
11231.7Schristos<a href="https://web.archive.org/web/20190130042457/https://www.hackcraft.net/web/datetime/">Date &amp; Time
11241.1SchristosFormats on the Web</a> surveys web- and Internet-oriented date and time
11251.1Schristosformats.</li>
11261.1Schristos<li>Alphabetic time zone abbreviations should not be used as unique
11271.1Schristosidentifiers for <abbr>UT</abbr> offsets as they are ambiguous in
11281.1Schristospractice. For example, in English-speaking North America
11291.1Schristos"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>,
11301.1Schristosbut in China it denotes 8 hours ahead of <abbr>UT</abbr>,
11311.1Schristosand French-speaking North Americans prefer
11321.1Schristos"<abbr title="Heure Normale du Centre">HNC</abbr>" to
11331.1Schristos"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
11341.2Schristosdatabase contains English abbreviations for many timestamps;
11351.1Schristosunfortunately some of these abbreviations were merely the database maintainers'
11361.1Schristosinventions, and these have been removed when possible.</li>
11371.1Schristos<li>Numeric time zone abbreviations typically count hours east of
11381.1Schristos<abbr>UT</abbr>, e.g., +09 for Japan and
11391.1Schristos&minus;10 for Hawaii. However, the <abbr>POSIX</abbr>
11401.1Schristos<code><abbr>TZ</abbr></code> environment variable uses the opposite convention.
11411.1SchristosFor example, one might use <code><abbr>TZ</abbr>="<abbr
11421.1Schristostitle="Japan Standard Time">JST</abbr>-9"</code> and
11431.1Schristos<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
11441.1Schristosfor Japan and Hawaii, respectively. If the
11451.1Schristos<code><abbr>tz</abbr></code> database is available, it is usually better to use
11461.1Schristossettings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
11471.1Schristos<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
11481.2Schristosconfusion, handle old timestamps better, and insulate you better from
11491.1Schristosany future changes to the rules. One should never set
11501.1Schristos<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
11511.1Schristos<code>"GMT-9"</code>, though, since this would incorrectly imply that
11521.1Schristoslocal time is nine hours ahead of <abbr>UT</abbr> and the time zone
11531.1Schristosis called "<abbr>GMT</abbr>".</li>
11541.1Schristos</ul>
11551.6Schristos</section>
11561.6Schristos
11571.6Schristos<section>
11581.1Schristos<h2 id="see-also">See also</h2>
11591.1Schristos<ul>
11601.7Schristos<li><a href="theory.html">Theory and pragmatics of the
11611.7Schristos<code><abbr>tz</abbr></code> code and data</a></li>
11621.1Schristos<li><a href="tz-art.html">Time and the Arts</a></li>
11631.1Schristos</ul>
11641.6Schristos</section>
11651.6Schristos
11661.6Schristos<footer>
11671.1Schristos<hr>
11681.1SchristosThis web page is in the public domain, so clarified as of
11691.1Schristos2009-05-17 by Arthur David Olson.
11701.1Schristos<br>
11711.1SchristosPlease send corrections to this web page to the
11721.1Schristos<a href="mailto:tz@iana.org">time zone mailing list</a>.
11731.6Schristos</footer>
11741.1Schristos</body>
11751.1Schristos</html>
1176