tz-link.html revision 1.18
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.14Schristos	  <li><a href="#coordinating">Coordinating with governments and distributors</a></li>
301.6Schristos	  <li><a href="#commentary">Commentary on the <code><abbr>tz</abbr></code> database</a></li>
311.6Schristos	</ul>
321.6Schristos      </li>
331.6Schristos      <li>Uses of the <code><abbr>tz</abbr></code> database
341.6Schristos	<ul>
351.6Schristos	  <li><a href="#web">Web sites using recent versions of the <code><abbr>tz</abbr></code> database</a></li>
361.6Schristos	  <li><a href="#protocols">Network protocols for <code><abbr>tz</abbr></code> data</a></li>
371.6Schristos	  <li><a href="#compilers">Other <code><abbr>tz</abbr></code> compilers</a></li>
381.6Schristos	  <li><a href="#TZif">Other <abbr>TZif</abbr> readers</a></li>
391.6Schristos	  <li><a href="#software">Other <code><abbr>tz</abbr></code>-based time zone software</a></li>
401.6Schristos	</ul>
411.6Schristos      </li>
421.6Schristos      <li>Related data
431.6Schristos	<ul>
441.6Schristos	  <li><a href="#other-dbs">Other time zone databases</a></li>
451.6Schristos	  <li><a href="#maps">Maps</a></li>
461.6Schristos	  <li><a href="#boundaries">Time zone boundaries</a></li>
471.6Schristos	</ul>
481.6Schristos      </li>
491.6Schristos      <li>Timekeeping concepts
501.6Schristos	<ul>
511.6Schristos	  <li><a href="#civil">Civil time concepts and history</a></li>
521.6Schristos	  <li><a href="#national">National histories of legal time</a></li>
531.7Schristos	  <li><a href="#costs">Costs and benefits of time shifts</a></li>
541.6Schristos	  <li><a href="#precision">Precision timekeeping</a></li>
551.6Schristos	  <li><a href="#notation">Time notation</a></li>
561.6Schristos	</ul>
571.6Schristos      </li>
581.13Schristos      <li><a href="#see-also">See also</a></li>
591.6Schristos    </ul>
601.6Schristos  </nav>
611.6Schristos
621.6Schristos<section>
631.1Schristos<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
641.1Schristos<p>
651.1SchristosThe <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
661.1Schristostime zone database contains code and data
671.1Schristosthat represent the history of local time
681.1Schristosfor many representative locations around the globe.
691.1SchristosIt is updated periodically to reflect changes made by political bodies
701.1Schristosto time zone boundaries and daylight saving rules.
711.1SchristosThis database (known as <code><abbr>tz</abbr></code>,
721.1Schristos<code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>)
731.1Schristosis used by several implementations,
741.1Schristosincluding
751.1Schristos<a href="https://www.gnu.org/software/libc/">the
761.1Schristos<abbr title="GNU's Not Unix">GNU</abbr>
771.1SchristosC Library</a> (used in
781.1Schristos<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
791.1Schristos<a href="https://www.android.com">Android</a>,
801.1Schristos<a href="https://www.freebsd.org">Free<abbr
811.1Schristostitle="Berkeley Software Distribution">BSD</abbr></a>,
821.1Schristos<a href="https://netbsd.org">Net<abbr>BSD</abbr></a>,
831.1Schristos<a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>,
841.17Schristos<a href="https://www.chromium.org/chromium-os/">ChromiumOS</a>,
851.1Schristos<a href="https://cygwin.com">Cygwin</a>,
861.7Schristos<a href="https://mariadb.org">MariaDB</a>,
871.1Schristos<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
881.17Schristos<a href="https://musl.libc.org">musl libc</a>,
891.1Schristos<a href="https://www.mysql.com">MySQL</a>,
901.1Schristos<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
911.1Schristostitle="Web Operating System">webOS</abbr></a>,
921.7Schristos<a href="https://en.wikipedia.org/wiki/IBM_AIX"><abbr
931.1Schristostitle="Advanced Interactive eXecutive">AIX</abbr></a>,
941.6Schristos<a href="https://www.apple.com/ios"><abbr
951.1Schristostitle="iPhone OS">iOS</abbr></a>,
961.6Schristos<a href="https://www.apple.com/macos">macOS</a>,
971.1Schristos<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
981.6Schristos<a href="https://www.vmssoftware.com">Open<abbr
991.1Schristostitle="Virtual Memory System">VMS</abbr></a>,
1001.6Schristos<a href="https://www.oracle.com/database/">Oracle Database</a>, and
1011.1Schristos<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
1021.1Schristos<p>
1031.2SchristosEach main entry in the database represents a <dfn>timezone</dfn>
1041.2Schristosfor a set of civil-time clocks that have all agreed since 1970.
1051.2SchristosTimezones are typically identified by continent or ocean and then by the
1061.2Schristosname of the largest city within the region containing the clocks.
1071.1SchristosFor example, <code>America/New_York</code>
1081.1Schristosrepresents most of the <abbr title="United States">US</abbr> eastern time zone;
1091.1Schristos<code>America/Phoenix</code> represents most of Arizona, which
1101.2Schristosuses mountain time without daylight saving time (<abbr>DST</abbr>);
1111.1Schristos<code>America/Detroit</code> represents most of Michigan, which uses
1121.1Schristoseastern time but with different <abbr>DST</abbr> rules in 1975;
1131.1Schristosand other entries represent smaller regions like Starke County,
1141.1SchristosIndiana, which switched from central to eastern time in 1991
1151.1Schristosand switched back in 2006.
1161.17SchristosTo use the database on a <a
1171.1Schristoshref="https://en.wikipedia.org/wiki/POSIX"><abbr
1181.17Schristostitle="Portable Operating System Interface">POSIX</abbr>.1-2024</a>
1191.1Schristosimplementation set the <code><abbr>TZ</abbr></code>
1201.1Schristosenvironment variable to the location's full name,
1211.1Schristose.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
1221.1Schristos<p>
1231.2SchristosAssociated with each timezone is a history of offsets from
1241.1Schristos<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
1251.1SchristosTime</a> (<abbr>UT</abbr>), which is <a
1261.1Schristoshref="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
1271.1SchristosTime</a> (<abbr>GMT</abbr>) with days beginning at midnight;
1281.2Schristosfor timestamps after 1960 this is more precisely <a
1291.1Schristoshref="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
1301.1SchristosUniversal Time</a> (<abbr>UTC</abbr>).
1311.1SchristosThe database also records when daylight saving time was in use,
1321.1Schristosalong with some time zone abbreviations such as <abbr>EST</abbr>
1331.1Schristosfor Eastern Standard Time in the <abbr>US</abbr>.</p>
1341.6Schristos</section>
1351.6Schristos
1361.6Schristos<section>
1371.1Schristos<h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2>
1381.1Schristos<p>
1391.1SchristosThe following <a
1401.1Schristoshref="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
1411.1Schristosthe latest release's two
1421.1Schristos<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
1431.1Schristosto a <abbr>GNU</abbr>/Linux or similar host.</p>
1441.2Schristos<pre><code>mkdir tzdb
1451.1Schristoscd tzdb
1461.1Schristos<a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
1471.1Schristoswget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
1481.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 -
1491.1Schristosgzip -dc tzdata-latest.tar.gz | tar -xf -
1501.1Schristos</code></pre>
1511.1Schristos<p>Alternatively, the following shell commands download the same
1521.1Schristosrelease in a single-tarball format containing extra data
1531.1Schristosuseful for regression testing:</p>
1541.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>
1551.1Schristos<a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
1561.1Schristos</code></pre>
1571.1Schristos<p>These commands use convenience links to the latest release
1581.1Schristosof the <code><abbr>tz</abbr></code> database hosted by the
1591.1Schristos<a href="https://www.iana.org/time-zones">Time Zone Database website</a>
1601.1Schristosof the <a href="https://www.iana.org">Internet Assigned Numbers
1611.1SchristosAuthority (IANA)</a>.
1621.1SchristosOlder releases are in files named
1631.1Schristos<code>tzcode<var>V</var>.tar.gz</code>,
1641.1Schristos<code>tzdata<var>V</var>.tar.gz</code>, and
1651.1Schristos<code>tzdb-<var>V</var>.tar.lz</code>,
1661.1Schristoswhere <code><var>V</var></code> is the version.
1671.1SchristosSince 1996, each version has been a four-digit year followed by
1681.1Schristoslower-case letter (<samp>a</samp> through <samp>z</samp>,
1691.1Schristosthen <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
1701.1Schristosthrough <samp>zzz</samp>, and so on).
1711.13SchristosSince version 2022a, each release has been distributed in
1721.10Schristos<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06">POSIX
1731.10Schristosustar interchange format</a>, compressed as described above;
1741.14Schristosolder releases use a nearly compatible format.
1751.1SchristosSince version 2016h, each release has contained a text file named
1761.16Schristos"<code>version</code>" whose first (and currently only) line is the version.
1771.7SchristosOlder releases are <a href="https://ftp.iana.org/tz/releases/">archived</a>,
1781.7Schristosand are also available in an
1791.1Schristos<a href="ftp://ftp.iana.org/tz/releases/"><abbr
1801.1Schristostitle="File Transfer Protocol">FTP</abbr> directory</a> via a
1811.14Schristosless secure protocol.</p>
1821.1Schristos<p>Alternatively, a development repository of code and data can be
1831.1Schristosretrieved from <a href="https://github.com">GitHub</a> via the shell
1841.1Schristoscommand:</p>
1851.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>
1861.1Schristos</code></pre>
1871.1Schristos<p>
1881.1SchristosSince version 2012e, each release has been tagged in development repositories.
1891.1SchristosUntagged commits are less well tested and probably contain
1901.1Schristosmore errors.</p>
1911.1Schristos<p>
1921.1SchristosAfter obtaining the code and data files, see the
1931.1Schristos<code>README</code> file for what to do next.
1941.1SchristosThe code lets you compile the <code><abbr>tz</abbr></code> source files into
1951.2Schristosmachine-readable binary files, one for each location. The binary files
1961.17Schristosare in a special format specified by
1971.18Schristos<a href="https://www.rfc-editor.org/rfc/9636">The
1981.17SchristosTime Zone Information Format (<abbr>TZif</abbr>)</a>
1991.18Schristos(Internet <abbr title="Request For Comments">RFC</abbr> 9636).
2001.2SchristosThe code also lets
2011.2Schristosyou read a <abbr>TZif</abbr> file and interpret timestamps for that
2021.1Schristoslocation.</p>
2031.6Schristos</section>
2041.6Schristos
2051.6Schristos<section>
2061.1Schristos<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
2071.1Schristos<p>
2081.1SchristosThe <code><abbr>tz</abbr></code> code and data
2091.1Schristosare by no means authoritative. If you find errors, please
2101.17Schristosemail changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
2111.17Schristosthe time zone mailing list. See
2121.17Schristos<a href="https://lists.iana.org/postorius/lists/tz.iana.org/">the mailing
2131.17Schristoslist's main page</a> to subscribe or to browse its archive of old messages.
2141.17Schristos<a href="https://tzdata-meta.timtimeonline.com">Metadata for mailing list
2151.5Schristosdiscussions</a> and corresponding data changes can be
2161.5Schristosgenerated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>.
2171.5Schristos</p>
2181.1Schristos<p>
2191.1SchristosChanges to the <code><abbr>tz</abbr></code> code and data are often
2201.1Schristospropagated to clients via operating system updates, so
2211.1Schristosclient <code><abbr>tz</abbr></code> data can often be corrected by
2221.1Schristosapplying these updates. With GNU/Linux and similar systems, if your
2231.1Schristosmaintenance provider has not yet adopted the
2241.1Schristoslatest <code><abbr>tz</abbr></code> data, you can often short-circuit
2251.1Schristosthe process by tailoring the generic instructions in
2261.1Schristosthe <code><abbr>tz</abbr> README</code> file and installing the latest
2271.1Schristosdata yourself. System-specific instructions for installing the
2281.1Schristoslatest <code><abbr>tz</abbr></code> data have also been published
2291.17Schristosfor <a href="https://www.ibm.com/support/pages/aix-time-zone-olson-tzdata-updates"><abbr>AIX</abbr></a>,
2301.1Schristos<a
2311.10Schristoshref="https://source.android.com/devices/tech/config/timezone-rules">Android</a>,
2321.1Schristos<a
2331.11Schristoshref="https://unicode-org.github.io/icu/userguide/datetime/timezone/"><abbr
2341.1Schristostitle="International Components for Unicode">ICU</abbr></a>,
2351.11Schristos<a href="https://www.ibm.com/support/pages/java-sdk-time-zone-update-utility"><abbr>IBM</abbr>
2361.9SchristosJDK</a>,
2371.9Schristos<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
2381.1Schristoshref="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
2391.9Schristos<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
2401.11Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">OpenJDK/Oracle JDK</a>.
2411.1Schristos</p>
2421.12Schristos<p>Since version 2013a,
2431.12Schristossources for the <code><abbr>tz</abbr></code> database have been
2441.1Schristos<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
2451.1Schristostitle="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
2461.1Schristos<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
2471.1Schristoswith lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
2481.1Schristostitle="linefeed">LF</abbr></a>,
2491.1Schristoswhich can be modified by common text editors such
2501.1Schristosas <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
2511.17Schristos<a href="https://gedit-technology.github.io/apps/gedit/">gedit</a>, and
2521.1Schristos<a href="https://www.vim.org">vim</a>.
2531.1SchristosSpecialized source-file editing can be done via the
2541.1Schristos<a href="https://packagecontrol.io/packages/zoneinfo">Sublime
2551.1Schristoszoneinfo</a> package for <a
2561.1Schristoshref="https://www.sublimetext.com">Sublime Text</a> and the <a
2571.1Schristoshref="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
2581.1Schristoszoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
2591.1SchristosStudio Code</a>.
2601.1Schristos</p>
2611.1Schristos<p>
2621.1SchristosFor further information about updates, please see
2631.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc6557">Procedures for
2641.17SchristosMaintaining the Time Zone Database</a> (Internet <abbr>RFC</abbr> 6557).
2651.17SchristosMore detail can be
2661.7Schristosfound in <a href="theory.html">Theory and pragmatics of the
2671.7Schristos<code><abbr>tz</abbr></code> code and data</a>.
2681.2Schristos<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
2691.2Schristosdisplays changes between recent <code><abbr>tzdb</abbr></code> versions.
2701.1Schristos</p>
2711.6Schristos</section>
2721.6Schristos
2731.6Schristos<section>
2741.14Schristos<h2 id="coordinating">Coordinating with governments and distributors</h2>
2751.14Schristos<p>
2761.14SchristosAs discussed in
2771.14Schristos"<a href="https://www.icann.org/en/blogs/details/how-time-zones-are-coordinated-13-03-2023-en">How
2781.14SchristosTime Zones Are Coordinated</a>", the time zone database relies on
2791.14Schristoscollaboration among governments, the time zone database volunteer
2801.14Schristoscommunity, and data distributors downstream.
2811.14Schristos<p>
2821.14SchristosIf your government plans to change its time zone boundaries or
2831.14Schristosdaylight saving rules, please send email to <a
2841.14Schristoshref="mailto:tz@iana.org"><code>tz@iana.org</code></a> well in advance,
2851.14Schristosas this will lessen confusion and will coordinate updates to many cell phones,
2861.14Schristoscomputers, and other devices around the world.
2871.14SchristosIn your email, please cite the legislation or regulation that specifies
2881.14Schristosthe change, so that it can be checked for details such as the exact times
2891.14Schristoswhen clock transitions occur.
2901.14SchristosIt is OK if a rule change is planned to affect clocks
2911.14Schristosfar into the future, as a long-planned change can easily be reverted
2921.14Schristosor otherwise altered with a year's notice before the change would have
2931.14Schristosaffected clocks.</p>
2941.14Schristos<p>
2951.14SchristosThere is no fixed schedule for <code><abbr>tzdb</abbr></code> releases.
2961.14SchristosHowever, typically a release occurs every few months.
2971.14SchristosMany downstream timezone data distributors wait for
2981.14Schristosa <code><abbr>tzdb</abbr></code> release before they produce an update
2991.14Schristosto time zone behavior in consumer devices and software products.
3001.14SchristosAfter a release, various parties must integrate, test,
3011.14Schristosand roll out an update before <a
3021.14Schristoshref="https://en.wikipedia.org/wiki/End_user">end users</a> see changes.
3031.14SchristosThese updates can be expensive, for both the <a
3041.14Schristoshref="https://en.wikipedia.org/wiki/Quality_assurance">quality
3051.14Schristosassurance</a> process and the overall cost of shipping and installing
3061.14Schristosupdates to each device's copy of <code><abbr>tzdb</abbr></code>.
3071.14SchristosUpdates may be batched with other updates and may take substantial
3081.14Schristostime to reach end users after a release.
3091.14SchristosOlder devices may no longer be supported and thus may never be updated,
3101.14Schristoswhich means they will continue to use out-of-date rules.</p>
3111.14Schristos<p>
3121.14SchristosFor these reasons any rule change should be promulgated at least a
3131.14Schristosyear before it affects how clocks operate; otherwise, there is a good
3141.14Schristoschance that many clocks will be wrong due to delays in propagating updates,
3151.14Schristosand that residents will be confused or even actively resist the change.
3161.14SchristosThe shorter the notice, the more likely clock problems will arise; see "<a
3171.14Schristoshref="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
3181.14Schristosthe Timing of Time Zone Changes</a>" for examples.
3191.14Schristos</p>
3201.14Schristos</section>
3211.14Schristos
3221.14Schristos<section>
3231.1Schristos<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
3241.1Schristos<ul>
3251.1Schristos<li>The article
3261.1Schristos<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
3271.1Schristosan encyclopedic summary.</li>
3281.1Schristos<li><a href="tz-how-to.html">How to Read the
3291.1Schristostz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
3301.1Schristosdatabase format.</li>
3311.1Schristos<li><a
3321.1Schristoshref="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
3331.1Schristosliterary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
3341.1Schristosdatabase's style.</li>
3351.10Schristos<li><a href="https://doi.org/10.1145/3340301.3341125">What time is it:
3361.10Schristosmanaging time in the internet</a> analyzes the database longitudinally.</li>
3371.1Schristos</ul>
3381.6Schristos</section>
3391.6Schristos
3401.6Schristos<section>
3411.1Schristos<h2 id="web">Web sites using recent versions of the
3421.1Schristos<code><abbr>tz</abbr></code> database</h2>
3431.1Schristos<p>
3441.1SchristosThese are listed roughly in ascending order of complexity and fanciness.
3451.1Schristos</p>
3461.1Schristos<ul>
3471.1Schristos<li><a href="https://time.is">Time.is</a> shows locations'
3481.1Schristostime and zones.</li>
3491.1Schristos<li><a href="https://www.timejones.com">TimeJones.com</a>,
3501.1Schristos<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
3511.7Schristos<a href="https://www.worldclock.com">The World Clock</a>
3521.1Schristosare time zone converters.</li>
3531.8Schristos<li><a href="https://timezonedb.com/download">TimeZoneDB Database</a>
3541.8Schristospublishes <code><abbr>tzdb</abbr></code>-derived data in
3551.8Schristos<a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr
3561.8Schristostitle="comma-separated values">CSV</abbr></a> and
3571.8Schristosin <a href="https://en.wikipedia.org/wiki/SQL"><abbr
3581.8Schristostitle="Structured Query Language">SQL</abbr></a> form.</li>
3591.1Schristos<li><a
3601.6Schristoshref="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
3611.1Schristoslets you see the <code><abbr>TZ</abbr></code> values directly.</li>
3621.1Schristos<li><a
3631.13Schristoshref="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
3641.1SchristosTime in 1000 Places</a> uses descriptions of the values.</li>
3651.1Schristos<li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
3661.1SchristosWorldwide</a> lets you sort zone names and convert times.</li>
3671.1Schristos<li><a href="https://24timezones.com">24TimeZones</a> has a world
3681.1Schristostime map and a time converter.</li>
3691.1Schristos<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
3701.1Schristoscalculates the current time difference between locations.</li>
3711.13Schristos<li><a href="https://www.wx-now.com">Weather Now</a> and
3721.13Schristos<a href="https://www.thetimenow.com">The Time Now</a> list the weather too.</li>
3731.1Schristos</ul>
3741.6Schristos</section>
3751.6Schristos
3761.6Schristos<section>
3771.1Schristos<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
3781.1Schristos<ul>
3791.1Schristos<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
3801.1Schristos<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
3811.1SchristosDistribution Service (tzdist) working group</a> defined <a
3821.18Schristoshref="https://www.rfc-editor.org/rfc/rfc7808">TZDIST</a>
3831.1Schristos(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
3841.18Schristosalong with <a href="https://www.rfc-editor.org/rfc/rfc7809">CalDAV</a>
3851.1Schristos(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
3861.2Schristostransferring time zone data by reference.
3871.8Schristos<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
3881.8Schristosimplementations</a> are available.
3891.2SchristosThe <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
3901.9Schristosmailing list</a> discusses possible extensions.</li>
3911.18Schristos<li>The <a href="https://www.rfc-editor.org/rfc/rfc5545">
3921.1SchristosInternet Calendaring and Scheduling Core Object Specification
3931.1Schristos(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
3941.1Schristoscovers time zone
3951.1Schristosdata; see its VTIMEZONE calendar component.
3961.1SchristosThe iCalendar format requires specialized parsers and generators; a
3971.18Schristosvariant <a href="https://www.rfc-editor.org/rfc/rfc6321">xCal</a>
3981.1Schristos(Internet <abbr>RFC</abbr> 6321) uses
3991.1Schristos<a href="https://www.w3.org/XML/"><abbr
4001.1Schristostitle="Extensible Markup Language">XML</abbr></a> format, and a variant
4011.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc7265">jCal</a>
4021.1Schristos(Internet <abbr>RFC</abbr> 7265)
4031.17Schristosuses <a href="https://www.json.org/json-en.html"><abbr
4041.1Schristostitle="JavaScript Object Notation">JSON</abbr></a> format.</li>
4051.1Schristos</ul>
4061.6Schristos</section>
4071.6Schristos
4081.6Schristos<section>
4091.1Schristos<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
4101.7Schristos<p>Although some of these do not fully support
4111.7Schristos<code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
4121.7Schristosdistributions you can generally work around compatibility problems by
4131.7Schristosrunning the command <code>make rearguard_tarballs</code> and compiling
4141.7Schristosfrom the resulting tarballs instead.</p>
4151.1Schristos<ul>
4161.17Schristos<li><a href="https://github.com/libical/vzic">Vzic</a> is a <a
4171.14Schristoshref="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>
4181.1Schristosprogram that compiles
4191.1Schristos<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
4201.1SchristosVzic is freely
4211.1Schristosavailable under the <a
4221.1Schristoshref="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
4231.1SchristosGeneral Public License (<abbr
4241.1Schristostitle="General Public License">GPL</abbr>)</a>.</li>
4251.1Schristos<li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
4261.1Schristosdatabase conversion utility</a> is like Vzic, except for the <a
4271.6Schristoshref="https://dotnet.microsoft.com">.NET framework</a>
4281.1Schristosand with a <abbr>BSD</abbr>-style license.</li>
4291.1Schristos<li><a
4301.4Schristoshref="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
4311.1Schristoscontains a script <code>parse_olson</code> that compiles
4321.1Schristos<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
4331.1Schristosmodules. It is part of the Perl <a
4341.4Schristoshref="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
4351.4Schristoswhich is freely
4361.1Schristosavailable under both the <abbr>GPL</abbr> and the Perl Artistic
4371.1SchristosLicense. DateTime::TimeZone also contains a script
4381.1Schristos<code>tests_from_zdump</code> that generates test cases for each clock
4391.1Schristostransition in the <code><abbr>tz</abbr></code> database.</li>
4401.1Schristos<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
4411.1SchristosDatabase Parser</a> is a
4421.14Schristos<a href="https://en.wikipedia.org/wiki/C++">C++</a> parser and
4431.17Schristosruntime library with a <a
4441.17Schristoshref="https://en.cppreference.com/w/cpp/chrono"><code>std::chrono</code> API</a>
4451.17Schristosthat is a standard part of C++.
4461.1SchristosIt is freely available under the
4471.1Schristos<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
4481.13Schristos<li><a id="ICU" href="https://icu.unicode.org">International Components for
4491.1SchristosUnicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
4501.14Schristoshref="https://en.wikipedia.org/wiki/Java_(programming_language)">Java</a>
4511.1Schristoslibraries for internationalization that
4521.1Schristoshas a compiler from <code><abbr>tz</abbr></code> source
4531.1Schristosand from <abbr title="Common Locale Data Repository">CLDR</abbr> data
4541.1Schristos(mentioned <a href="#CLDR">below</a>)
4551.1Schristosinto an <abbr>ICU</abbr>-specific format.
4561.1Schristos<abbr>ICU</abbr> is freely available under a
4571.1Schristos<abbr>BSD</abbr>-style license.</li>
4581.1Schristos<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
4591.1Schristosthe <a href="https://elixir-lang.org">Elixir</a> language downloads
4601.7Schristosand compiles <code><abbr>tz</abbr></code> source and exposes <abbr
4611.1Schristostitle="Application Program Interface">API</abbr>s for use. It is
4621.1Schristosfreely available under the <abbr>MIT</abbr> license.</li>
4631.1Schristos<li>Java-based compilers and libraries include:
4641.1Schristos<ul>
4651.1Schristos<li>The <a
4661.9Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
4671.1Schristostool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
4681.17Schristos<a href="https://openjdk.org">OpenJDK</a> and
4691.17Schristos<a href="https://jdk.java.net">Oracle JDK</a>.
4701.9SchristosAlthough its source code is proprietary, its executable is available under the
4711.9Schristos<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
4721.9SchristosTimezone Updater License Agreement</a>.</li>
4731.1Schristos<li>The <a
4741.4Schristoshref="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
4751.6SchristosSE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
4761.4Schristoshref="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
4771.1Schristoswhich is freely available under a <abbr>BSD</abbr>-style license.</li>
4781.4Schristos<li><a href="https://www.joda.org/joda-time/">Joda-Time &ndash; Java date
4791.1Schristosand time <abbr>API</abbr></a> contains a class
4801.1Schristos<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
4811.1Schristos<code><abbr>tz</abbr></code> source into a binary format. It inspired
4821.1SchristosJava 8 <code>java.time</code>, which its users should migrate to once
4831.1Schristosthey can assume Java 8 or later. It is available under the <a
4841.1Schristoshref="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
4851.9Schristos<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
4861.7Schristoshref="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
4871.9Schristosare alternatives to TZUpdater. IANA Updater's license is unclear;
4881.9SchristosZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
4891.4Schristos<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
4901.4Schristostime library for Android</a> and
4911.17Schristos<a href="https://github.com/MenoData/Time4J">Time4J: Advanced date,
4921.4Schristostime and interval library for Java</a> compile
4931.4Schristos<code><abbr>tz</abbr></code> source into a binary format.
4941.4SchristosTime4A is available under the Apache License and Time4J is
4951.1Schristosavailable under the <a
4961.1Schristoshref="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
4971.1SchristosGeneral Public License (<abbr title="Lesser General Public
4981.1SchristosLicense">LGPL</abbr>)</a>.</li>
4991.1Schristos<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
5001.1SchristosJava-based libraries.</li>
5011.1Schristos</ul>
5021.1Schristos<li><a href="https://nodatime.org">Noda Time &ndash; Date and
5031.1Schristostime <abbr>API</abbr> for .NET</a>
5041.4Schristosis like Joda-Time and Time4J, but for the .NET framework instead of Java.
5051.4SchristosIt is freely available under the Apache License.</li>
5061.8Schristos<li>Many modern
5071.8Schristos<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
5081.8Schristosruntimes support <code><abbr>tz</abbr></code> natively via the
5091.16Schristos<code>timeZone</code> option of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"><code>Intl.DateTimeFormat</code></a>.
5101.10SchristosThis can be used as-is or with most of the following libraries,
5111.16Schristosmany of which also support runtimes lacking the <code>timeZone</code> option.
5121.1Schristos<ul>
5131.8Schristos<li>The <a
5141.16Schristoshref="https://github.com/formatjs/date-time-format-timezone"><code>Intl.DateTimeFormat</code>
5151.8Schristostimezone polyfill</a>
5161.8Schristosis freely available under a <abbr>BSD</abbr>-style license.</li>
5171.17Schristos<li>The <a href="https://date-fns.org">date-fns</a>
5181.10Schristoslibrary manipulates timezone-aware timestamps in browsers and
5191.10Schristosin <a href="https://nodejs.org/en/">Node.js</a>.
5201.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5211.10Schristos<li><a href="https://github.com/iamkun/dayjs">Day.js</a> is a
5221.10Schristosminimalist replacement for the date and time API of
5231.10Schristosthe <a href="https://momentjs.com/docs/">now-legacy Moment.js</a> date
5241.10Schristosmanipulation library.
5251.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5261.10Schristos<li><a href="https://moment.github.io/luxon/">Luxon</a> improves
5271.16Schristostimezone support for the <code>Intl</code> API.
5281.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5291.1Schristos<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
5301.10SchristosMoment.js plugin.
5311.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5321.8Schristos<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
5331.8SchristosJavaScript library that supports date arithmetic that is time zone
5341.8Schristosaware. It is freely available under the <abbr>MIT</abbr> license.</li>
5351.10Schristos<li><a href="https://www.npmjs.com/package/@tubular/time">@tubular/time</a>
5361.10Schristossupports live <code><abbr>tzdb</abbr></code> updates,
5371.10Schristosastronomical and atomic time, a command-line interface,
5381.10Schristosand full <a
5391.10Schristoshref="https://en.wikipedia.org/wiki/TypeScript">TypeScript</a>.
5401.10SchristosIts companion <a
5411.10Schristoshref="https://www.npmjs.com/package/@tubular/time-tzdb">@tubular/time-tzdb</a>
5421.10Schristoscan generate <abbr>TZif</abbr> and other files, and a companion website
5431.10Schristos<a href="https://tzexplorer.org">Timezone Database Explorer</a> lets you
5441.10Schristosconvert timestamps, view transition histories, and download code and data.
5451.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5461.1Schristos</ul>
5471.10SchristosThe proposed <a
5481.16Schristoshref="https://github.com/tc39/proposal-temporal"><code>Temporal</code>
5491.10Schristosobjects</a> let programs access an abstract view of
5501.10Schristos<code><abbr>tzdb</abbr></code> data, and are designed to replace <a
5511.10Schristoshref="https://codeofmatt.com/javascript-date-type-is-horribly-broken/">JavaScript's
5521.16Schristosproblematic <code>Date</code> objects</a> when working with dates and times.
5531.17Schristos<li><a href="https://github.com/JuliaTime">JuliaTime</a> contains a
5541.1Schristoscompiler from <code><abbr>tz</abbr></code> source into
5551.17Schristos<a href="https://julialang.org">Julia</a>. It is freely available
5561.1Schristosunder the <abbr>MIT</abbr> license.</li>
5571.6Schristos<li><a href="https://github.com/pavkam/tzdb"><abbr>TZDB</abbr> &ndash;
5581.6Schristos<abbr>IANA</abbr> Time Zone Database for Delphi/<abbr
5591.6Schristostitle="Free Pascal Compiler">FPC</abbr></a>
5601.2Schristoscompiles from <code><abbr>tz</abbr></code> source into
5611.2Schristos<a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
5621.2Schristosas compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
5631.2Schristosand <a
5641.2Schristoshref="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
5651.2SchristosIt is freely available under a <abbr>BSD</abbr>-style license.</li>
5661.17Schristos<li><a href="https://pythonhosted.org/pytz/">pytz &ndash; World Timezone
5671.1SchristosDefinitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
5681.1Schristos<a href="https://www.python.org">Python</a>.
5691.9SchristosIt is freely available under a <abbr>BSD</abbr>-style license.
5701.11SchristosIn code that can assume Python 3.6 or later it is largely superseded; see <a
5711.11Schristoshref="https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html">pytz:
5721.11SchristosThe Fastest Footgun in the West</a>.</li>
5731.1Schristos<li><a href="https://tzinfo.github.io">TZInfo &ndash;
5741.1SchristosRuby Timezone Library</a>
5751.1Schristoscompiles <code><abbr>tz</abbr></code> source into
5761.1Schristos<a href="https://www.ruby-lang.org/en/">Ruby</a>.
5771.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5781.13Schristos<li>The <a href="https://www.squeaksource.com/Chronos/">Chronos Date/Time
5791.1SchristosLibrary</a> is
5801.1Schristosa <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
5811.1Schristoslibrary that compiles <code><abbr>tz</abbr></code> source into a time
5821.1Schristoszone repository whose format
5831.1Schristosis either proprietary or an <abbr>XML</abbr>-encoded
5841.1Schristosrepresentation.</li>
5851.1Schristos<li><a id="Tcl" href="https://tcl.tk">Tcl</a>
5861.1Schristoscontains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
5871.1Schristossource into text files, along with a runtime that can read those
5881.1Schristosfiles. Tcl is freely available under a <abbr>BSD</abbr>-style
5891.1Schristoslicense.</li>
5901.1Schristos</ul>
5911.6Schristos</section>
5921.6Schristos
5931.6Schristos<section>
5941.2Schristos<h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
5951.1Schristos<ul>
5961.1Schristos<li>The <a
5971.1Schristoshref="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
5981.1SchristosLibrary</a>
5991.1Schristoshas an independent, thread-safe implementation of
6001.2Schristosa <abbr>TZif</abbr> file reader.
6011.1SchristosThis library is freely available under the LGPL
6021.1Schristosand is widely used in <abbr>GNU</abbr>/Linux systems.</li>
6031.1Schristos<li><a href="https://www.gnome.org">GNOME</a>'s
6041.1Schristos<a href="https://developer.gnome.org/glib/">GLib</a> has
6051.2Schristosa <abbr>TZif</abbr> file reader written in C that
6061.1Schristoscreates a <code>GTimeZone</code> object representing sets
6071.1Schristosof <abbr>UT</abbr> offsets.
6081.1SchristosIt is freely available under the <abbr>LGPL</abbr>.</li>
6091.1Schristos<li>The
6101.1Schristos<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
6111.1Schristos<code>baltzo::TimeZoneUtil</code> component contains a C++
6121.2Schristosimplementation of a <abbr>TZif</abbr> file reader. It is freely available under
6131.1Schristosthe Apache License.</li>
6141.1Schristos<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
6151.1Schristoslibrary that translates between <abbr>UT</abbr> and civil time and
6161.2Schristoscan read <abbr>TZif</abbr> files. It is freely available under the Apache
6171.1SchristosLicense.</li>
6181.16Schristos<li>The
6191.16Schristos<a href="https://github.com/nayarsystems/posix_tz_db"><code>posix_tz_db</code>
6201.16Schristospackage</a> contains Python code
6211.16Schristosto generate <abbr>CSV</abbr> and <abbr>JSON</abbr> tables that map
6221.17Schristos<code><abbr>tz</abbr></code> settings to proleptic TZ approximations.
6231.16SchristosFor example, it maps <code>"Africa/Cairo"</code>
6241.16Schristosto <code>"EET-2EEST,M4.5.5/0,M10.5.4/24"</code>,
6251.16Schristosan approximation valid for Cairo timestamps from 2023 on.
6261.17SchristosThis can help porting to platforms that support only proleptic TZ.
6271.16SchristosThe package is freely available under the MIT license.</li>
6281.1Schristos<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
6291.2Schristoslibrary that reads <abbr>TZif</abbr> files and converts
6301.2Schristostimestamps from one time zone or format to another.
6311.1SchristosIt is used by <a href="https://secure.php.net"><abbr
6321.1Schristostitle="PHP: Hypertext Preprocessor">PHP</abbr></a>,
6331.1Schristos<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
6341.1Schristosand <a href="https://www.mongodb.com">MongoDB</a>.
6351.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
6361.1Schristos<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
6371.2Schristos<abbr>TZif</abbr> file reader.</li>
6381.4Schristos<li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
6391.1SchristosDateTime::TimeZone::Tzfile</a>
6401.2Schristosis a <abbr>TZif</abbr> file reader written in Perl.
6411.1SchristosIt is freely available under the same terms as Perl
6421.1Schristos(dual <abbr>GPL</abbr> and Artistic license).</li>
6431.9Schristos<li>Python has a <a id="python-zoneinfo"
6441.11Schristoshref="https://docs.python.org/3/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
6451.8Schristosclass</a> that reads <abbr>TZif</abbr> data and creates objects
6461.8Schristosthat represent <code><abbr>tzdb</abbr></code> timezones.
6471.8SchristosPython is freely available under the
6481.11Schristos<a href="https://docs.python.org/3/license.html">Python Software Foundation
6491.8SchristosLicense</a>.
6501.17SchristosA companion <a id="pypi-tzdata" href="https://pypi.org">PyPI</a> module
6511.8Schristos<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
6521.8Schristossupplies TZif data if the underlying system data cannot be found;
6531.8Schristosit is freely available under the Apache License.</li>
6541.1Schristos<li>The
6551.1Schristospublic-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
6561.1Schristoslibrary contains a Python tool that
6571.2Schristosconverts <abbr>TZif</abbr> data into
6581.1Schristos<abbr>JSON</abbr>-format data suitable for use
6591.1Schristosin its JavaScript library for time zone conversion. Dates before 1970
6601.1Schristosare not supported.</li>
6611.1Schristos<li>The <a
6621.1Schristoshref="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
6631.1Schristospackage contains <a href="https://www.haskell.org">Haskell</a> code that
6641.2Schristosparses and uses <abbr>TZif</abbr> data. It is freely
6651.1Schristosavailable under a <abbr>BSD</abbr>-style license.</li>
6661.1Schristos</ul>
6671.6Schristos</section>
6681.6Schristos
6691.6Schristos<section>
6701.1Schristos<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
6711.1Schristos<ul>
6721.1Schristos<li><a href="https://foxclocks.org">FoxClocks</a>
6731.1Schristosis an extension for <a href="https://www.google.com/chrome/">Google
6741.16SchristosChrome</a>, <a
6751.1Schristoshref="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
6761.1Schristoshref="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
6771.1SchristosIt displays multiple clocks in the application window, and has a mapping
6781.1Schristosinterface to <a href="https://www.google.com/earth/">Google Earth</a>.
6791.1SchristosIt is freely available under the <abbr>GPL</abbr>.</li>
6801.1Schristos<li><a href="https://golang.org">Go programming language</a>
6811.1Schristosimplementations contain a copy of a 32-bit subset of a recent
6821.1Schristos<code><abbr>tz</abbr></code> database in a
6831.1SchristosGo-specific format.</li>
6841.1Schristos<li>Microsoft Windows 8.1
6851.1Schristosand later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
6861.3Schristosdata (mentioned <a href="#CLDR">below</a>) used by the
6871.3Schristos<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
6881.3Schristos<a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
6891.3Schristos<a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
6901.3Schristos<a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
6911.1Schristos<a id="System.TimeZoneInfo"
6921.1Schristoshref="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
6931.1SchristosWindows Time Zones with <code>System.TimeZoneInfo</code></a> describes
6941.1Schristosthe older, proprietary method of Microsoft Windows 2000 and later,
6951.1Schristoswhich stores time zone data in the
6961.1Schristos<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
6971.1Schristos<a
6981.1Schristoshref="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone &rarr;
6991.1SchristosTzid table</a> or <a
7001.6Schristoshref="https://github.com/unicode-org/cldr/blob/master/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
7011.1Schristosfile</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
7021.1Schristosto <code><abbr>tz</abbr></code> names.
7031.3SchristosThese mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
7041.3Schristosor the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
7051.1Schristos<li><a
7061.1Schristoshref="https://www.oracle.com/java/index.html">Oracle
7071.1SchristosJava</a> contains a copy of a subset of a recent
7081.1Schristos<code><abbr>tz</abbr></code> database in a
7091.1SchristosJava-specific format.</li>
7101.1Schristos</ul>
7111.6Schristos</section>
7121.6Schristos
7131.6Schristos<section>
7141.1Schristos<h2 id="other-dbs">Other time zone databases</h2>
7151.1Schristos<ul>
7161.1Schristos<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
7171.4Schristosis Astrodienst's Web version of Shanks and Pottenger's out-of-print
7181.4Schristostime zone history atlases
7191.4Schristos<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
7201.9Schristos<a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
7211.4SchristosAlthough these extensive atlases
7221.4Schristos<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
7231.4Schristossources for much of the older <code><abbr>tz</abbr></code> data</a>,
7241.4Schristosthey are unreliable as Shanks appears to have
7251.1Schristosguessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
7261.1Schristossources and do not indicate which entries are guesswork.</li>
7271.1Schristos<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
7281.1Schristosits own <code>tztab</code>(4) format.</li>
7291.1Schristos<li>Microsoft Windows has proprietary data mentioned
7301.1Schristos<a href="#System.TimeZoneInfo">above</a>.</li>
7311.1Schristos<li><a href="https://www.worldtimeserver.com">World Time Server</a>
7321.1Schristosis another time zone database.</li>
7331.1Schristos<li>The <a
7341.1Schristoshref="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
7351.1SchristosSchedules Information Manual</a> of the
7361.1SchristosInternational Air Transport Association
7371.1Schristosgives current time zone rules for airports served by commercial aviation.</li>
7381.1Schristos</ul>
7391.6Schristos</section>
7401.6Schristos
7411.6Schristos<section>
7421.1Schristos<h2 id="maps">Maps</h2>
7431.1Schristos<ul>
7441.9Schristos<li>The <a
7451.9Schristoshref="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
7461.9Schristosand Regional Maps section</a> of <em>The World Factbook</em>, published by the
7471.9Schristos<a href="https://www.cia.gov">US Central Intelligence
7481.9SchristosAgency (<abbr
7491.9Schristostitle="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
7501.9Schristoszone map; the
7511.1Schristos<a
7521.6Schristoshref="https://legacy.lib.utexas.edu/maps/world.html">Perry&ndash;Casta&ntilde;eda
7531.1SchristosLibrary Map Collection</a>
7541.1Schristosof the University of Texas at Austin has copies of
7551.1Schristosrecent editions.
7561.1SchristosThe pictorial quality is good,
7571.1Schristosbut the maps do not indicate daylight saving time,
7581.1Schristosand parts of the data are a few years out of date.</li>
7591.6Schristos<li><a href="https://www.worldtimezone.com">World Time Zone Map
7601.6Schristoswith current time</a>
7611.1Schristoshas several fancy time zone maps; it covers Russia particularly well.
7621.1SchristosThe maps' pictorial quality is not quite as good as the
7631.1Schristos<abbr>CIA</abbr>'s
7641.1Schristosbut the maps are more up to date.</li>
7651.1Schristos<li><a
7661.1Schristoshref="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
7671.1Schristosmuch is time wrong around the world?</a> maps the difference between
7681.1Schristosmean solar and standard time, highlighting areas such as western China
7691.1Schristoswhere the two differ greatly. It's a bit out of date, unfortunately.</li>
7701.1Schristos</ul>
7711.6Schristos</section>
7721.6Schristos
7731.6Schristos<section>
7741.1Schristos<h2 id="boundaries">Time zone boundaries</h2>
7751.2Schristos<p>Geographical boundaries between timezones are available
7761.9Schristosfrom several <a
7771.9Schristoshref="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
7781.9Schristosgeolocation</a>
7791.1Schristosservices and other sources.</p>
7801.1Schristos<ul>
7811.1Schristos<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
7821.1SchristosBoundary Builder</a> extracts
7831.1Schristos<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
7841.2Schristosboundaries of <code><abbr>tzdb</abbr></code> timezones.
7851.1SchristosIts code is freely available under the <abbr>MIT</abbr> license, and
7861.1Schristosits data entries are freely available under the
7871.1Schristos<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
7881.16SchristosOpen Database License</a>. The borders appear to be quite accurate.
7891.16SchristosIts main web page lists more than twenty libraries
7901.16Schristosfor looking up a timezone name from a GPS coordinate.</li>
7911.1Schristos<li>Free access via a network API, if you register a key, is provided by
7921.4Schristosthe <a
7931.4Schristoshref="https://www.geonames.org/export/web-services.html#timezone">GeoNames
7941.4SchristosTimezone web service</a>, the <a
7951.4Schristoshref="https://developers.google.com/maps/documentation/timezone/intro">Google
7961.4SchristosMaps Time Zone API</a>, and
7971.8Schristosthe <a href="https://timezonedb.com/api">TimeZoneDB API</a>.
7981.1SchristosCommercial network API access is provided
7991.1Schristosby <a href="https://askgeo.com">AskGeo</a>
8001.1Schristosand <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
8011.1Schristos</li>
8021.1Schristos<li>"<a
8031.1Schristoshref="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
8041.1Schristosto get a time zone from a location using latitude and longitude
8051.1Schristoscoordinates?</a>" discusses other geolocation possibilities.</li>
8061.1Schristos<li><a href="http://statoids.com/statoids.html">Administrative
8071.1SchristosDivisions of Countries ("Statoids")</a> lists
8081.1Schristospolitical subdivision data related to time zones.</li>
8091.13Schristos<li><a href="https://manifold.net/info/freestuff.shtml">Manifold Software
8101.1Schristos&ndash; GIS and Database Tools</a> includes a Manifold-format map of
8111.16Schristosworld time zone boundaries circa 2007, distributed under the
8121.1Schristos<abbr>GPL</abbr>.</li>
8131.1Schristos<li>A ship within the <a
8141.1Schristoshref="https://en.wikipedia.org/wiki/Territorial_waters">territorial
8151.1Schristoswaters</a> of any nation uses that nation's time. In international
8161.1Schristoswaters, time zone boundaries are meridians 15&deg; apart, except that
8171.1Schristos<abbr>UT</abbr>&minus;12 and <abbr>UT</abbr>+12 are each 7.5&deg;
8181.1Schristoswide and are separated by
8191.1Schristosthe 180&deg; meridian (not by the International Date Line, which is
8201.1Schristosfor land and territorial waters only). A captain can change ship's
8211.1Schristosclocks any time after entering a new time zone; midnight changes are
8221.1Schristoscommon.</li>
8231.1Schristos</ul>
8241.6Schristos</section>
8251.6Schristos
8261.6Schristos<section>
8271.1Schristos<h2 id="civil">Civil time concepts and history</h2>
8281.1Schristos<ul>
8291.1Schristos<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
8301.1SchristosWalk through Time</a>
8311.1Schristossurveys the evolution of timekeeping.</li>
8321.4Schristos<li>The history of daylight saving time is surveyed in <a
8331.4Schristoshref="http://www.webexhibits.org/daylightsaving/">About Daylight
8341.4SchristosSaving Time &ndash; History, rationale, laws &amp; dates</a> and summarized in
8351.4Schristos<a href="http://seizethedaylight.com/dst/">A Brief
8361.4SchristosHistory of Daylight Saving Time</a>.</li>
8371.4Schristos<li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
8381.4SchristosLords</a> discusses how authoritarians manipulate civil time.</li>
8391.1Schristos<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
8401.1Schristoscontains guidelines and best practices for software applications that
8411.1Schristosdeal with civil time.</li>
8421.16Schristos<li><a href="https://webspace.science.uu.nl/~gent0113/idl/idl.htm">A History of
8431.1Schristosthe International Date Line</a> tells the story of the most important
8441.1Schristostime zone boundary.</li>
8451.1Schristos<li><a href="http://statoids.com/tconcept.html">Basic Time
8461.1SchristosZone Concepts</a> discusses terminological issues behind time zones.</li>
8471.1Schristos</ul>
8481.6Schristos</section>
8491.6Schristos
8501.6Schristos<section>
8511.1Schristos<h2 id="national">National histories of legal time</h2>
8521.1Schristos<dl>
8531.1Schristos<dt>Australia</dt>
8541.6Schristos<dd>The Parliamentary Library commissioned a <a
8551.16Schristoshref="https://parlinfo.aph.gov.au/parlInfo/download/library/prspub/359V6/upload_binary/359v60.pdf">research
8561.1Schristospaper on daylight saving time in Australia</a>.
8571.1SchristosThe Bureau of Meteorology publishes a list of <a
8581.1Schristoshref="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
8591.1SchristosDates of Daylight Savings Time within Australia</a>.</dd>
8601.1Schristos<dt>Belgium</dt>
8611.7Schristos<dd>The Royal Observatory of Belgium maintains a table of time in
8621.7SchristosBelgium (in
8631.16Schristos<a href="https://robinfo.oma.be/nl/astro-info/tijd/"
8641.7Schristoshreflang="nl">Dutch</a> and <a
8651.16Schristoshref="https://robinfo.oma.be/fr/astro-info/heure/"
8661.7Schristoshreflang="fr">French</a>).</dd>
8671.1Schristos<dt>Brazil</dt>
8681.1Schristos<dd>The Time Service Department of the National Observatory
8691.1Schristosrecords <a href="http://pcdsh01.on.br/DecHV.html"
8701.1Schristoshreflang="pt-BR">Brazil's daylight saving time decrees (in
8711.1SchristosPortuguese)</a>.</dd>
8721.1Schristos<dt>Canada</dt>
8731.1Schristos<dd>National Research Council Canada publishes current
8741.1Schristosand some older information about <a
8751.6Schristoshref="https://nrc.canada.ca/en/certifications-evaluations-standards/canadas-official-time/time-zones-daylight-saving-time">time
8761.6Schristoszones and daylight saving time</a>.</dd>
8771.1Schristos<dt>Chile</dt>
8781.1Schristos<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
8791.11Schristos<a href="https://www.horaoficial.cl/historia_hora.php" hreflang="es">history of
8801.1SchristosChile's official time (in Spanish)</a>.</dd>
8811.3Schristos<dt>China</dt>
8821.3Schristos<dd>The Hong Kong Observatory maintains a
8831.7Schristos<a href="https://www.hko.gov.hk/en/gts/time/Summertime.htm">history of
8841.3Schristos summer time in Hong Kong</a>,
8851.3Schristosand Macau's Meteorological and Geophysical Bureau maintains a <a
8861.7Schristoshref="https://www.smg.gov.mo/en/subpage/224/page/174">similar
8871.3Schristoshistory for Macau</a>.
8881.3SchristosUnfortunately the latter is incomplete and has errors.</dd>
8891.1Schristos<dt>Czech Republic</dt>
8901.1Schristos<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
8911.1Schristoshreflang="cs">When daylight saving time starts and ends (in Czech)</a>
8921.10Schristossummarizes and cites historical <abbr>DST</abbr> regulations.</dd>
8931.1Schristos<dt>Germany</dt>
8941.1Schristos<dd>The National Institute for Science and Technology maintains the <a
8951.1Schristoshref="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
8961.1Schristosof Legal Time in Germany</a>.</dd>
8971.1Schristos<dt>Israel</dt>
8981.17Schristos<dd><a
8991.17Schristoshref="https://tz.cs.huji.ac.il">Israel Timezone Files</a>
9001.17Schristoslists official time-change announcements and laws since 1940,
9011.17Schristosalmost all in Hebrew.</dd>
9021.2Schristos<dt>Malaysia</dt>
9031.2Schristos<dd>See Singapore <a href="#Singapore">below</a>.</dd>
9041.1Schristos<dt>Mexico</dt>
9051.1Schristos<dd>The Investigation and Analysis Service of the Mexican Library of
9061.1SchristosCongress has published a <a
9071.13Schristoshref="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
9081.1Schristoshreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
9091.1Schristos<dt>Netherlands</dt>
9101.16Schristos<dd><a href="https://webspace.science.uu.nl/~gent0113/wettijd/wettijd.htm"
9111.1Schristoshreflang="nl">Legal time in the Netherlands (in Dutch)</a>
9121.1Schristoscovers the history of local time in the Netherlands from ancient times.</dd>
9131.1Schristos<dt>New Zealand</dt>
9141.1Schristos<dd>The Department of Internal Affairs maintains a brief <a
9151.1Schristoshref="https://www.dia.govt.nz/Daylight-Saving-History">History of
9161.6SchristosDaylight Saving</a>.</dd>
9171.14Schristos<dt>Palestine</dt>
9181.14Schristos<dd>The Ministry of Telecom and IT publishes a <a
9191.16Schristoshref="https://mtit.pna.ps/home/TimeZone"
9201.14Schristoshreflang="ar">history of clock changes (in Arabic)</a>.</dd>
9211.10Schristos<dt>Portugal</dt>
9221.10Schristos<dd>The Lisbon Astronomical Observatory publishes a
9231.10Schristos<a href="https://oal.ul.pt/hora-legal/" hreflang="pt">history of
9241.10Schristoslegal time (in Portuguese)</a>.</dd>
9251.1Schristos<dt>Singapore</dt>
9261.1Schristos<dd><a id="Singapore"
9271.7Schristoshref="https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html">Why
9281.1Schristosis Singapore in the "Wrong" Time Zone?</a> details the
9291.1Schristoshistory of legal time in Singapore and Malaysia.</dd>
9301.1Schristos<dt>United Kingdom</dt>
9311.1Schristos<dd><a
9321.1Schristoshref="https://www.polyomino.org.uk/british-time/">History of
9331.1Schristoslegal time in Britain</a> discusses in detail the country
9341.6Schristoswith perhaps the best-documented history of clock adjustments.</dd>
9351.1Schristos<dt>United States</dt>
9361.1Schristos<dd>The Department of Transportation's <a
9371.1Schristoshref="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
9381.18SchristosTime Zone Proceedings</a> lists changes to
9391.18Schristosofficial written time zone boundaries, and its <a
9401.18Schristoshref="https://geodata.bts.gov/datasets/usdot::time-zones/about">Time
9411.18SchristosZones dataset</a> maps current boundaries.
9421.18SchristosThese boundaries are only for standard time, so the current map puts
9431.18Schristosall of Arizona in one time zone even though part of Arizona
9441.18Schristosobserves <abbr>DST</abbr> and part does not.</dd>
9451.1Schristos<dt>Uruguay</dt>
9461.1Schristos<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
9471.1SchristosNavy (SOHMA) publishes an annual <a
9481.13Schristoshref="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac
9491.1Schristos(in Spanish)</a>.</dd>
9501.1Schristos</dl>
9511.6Schristos</section>
9521.6Schristos
9531.6Schristos<section>
9541.7Schristos<h2 id="costs">Costs and benefits of time shifts</h2>
9551.7Schristos<p>Various sources argue for and against daylight saving time and time
9561.7Schristoszone shifts, and many scientific studies have been conducted. This
9571.8Schristossection summarizes reviews and position statements based on
9581.8Schristosscientific literature in the area.</p>
9591.7Schristos<ul>
9601.15Schristos<li>In 2022 the American Medical Association issued a
9611.15Schristos<a href="https://www.ama-assn.org/press-center/press-releases/ama-calls-permanent-standard-time">statement
9621.15Schristossupporting permanent standard time</a> on health grounds.</li>
9631.7Schristos<li>Carey RN, Sarma KM.
9641.7Schristos<a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of
9651.7Schristosdaylight saving time on road traffic collision risk: a systematic
9661.7Schristosreview</a>.
9671.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>.
9681.7SchristosThis reviews research literature and concludes that the evidence
9691.7Schristosneither supports nor refutes road safety benefits from
9701.7Schristosshifts in time zones.</li>
9711.7Schristos<li>Havranek T, Herman D, Irsova D.
9721.13Schristos<a href="https://www.iaee.org/en/publications/ejarticle.aspx?id=3051">Does
9731.16Schristosdaylight saving save electricity? A meta-analysis</a>.
9741.13Schristos<em>Energy J.</em> 2018;39(2):35&ndash;61.
9751.7Schristosdoi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.thav</a>.
9761.7SchristosThis analyzes research literature and concludes, "Electricity savings
9771.7Schristosare larger for countries farther away from the equator, while
9781.10Schristossubtropical regions consume more electricity because of <abbr>DST</abbr>."</li>
9791.16Schristos<li>Malow BA. <a
9801.16Schristoshref="https://academic.oup.com/sleep/article/45/12/zsac236/6717940">It is time
9811.16Schristosto abolish the clock change and adopt permanent
9821.16Schristosstandard time in the United States:
9831.16Schristosa Sleep Research Society position statement</a>.
9841.15Schristos<em>Sleep.</em> 2022;45(12):zsac236.
9851.15Schristosdoi:<a href="https://doi.org/10.1093/sleep/zsac236">10.1093/sleep/zsac236</a>.
9861.15SchristosAfter reviewing the scientific literature, the Sleep Research Society
9871.15Schristosadvocates permanent standard time due to its health benefits.
9881.15Schristos<li>Rishi MA, Cheng JY, Strang AR <em>et al</em>.
9891.15Schristos<a href="https://jcsm.aasm.org/doi/10.5664/jcsm.10898">Permanent standard time
9901.15Schristosis the optimal choice for health and safety:
9911.8Schristosan American Academy of Sleep Medicine position statement</a>.
9921.16Schristos<em>J Clin Sleep Med.</em> 2024;20(1):121&ndash;125.
9931.15Schristosdoi:<a href="https://doi.org/10.5664/jcsm.10898">10.5664/jcsm.10898</a>.
9941.15SchristosThe AASM argues for permanent standard time due to health and safety risks
9951.15Schristosand economic costs of both <abbr>DST</abbr> transitions and
9961.15Schristospermanent <abbr>DST</abbr>.</li>
9971.13Schristos<li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
9981.16Schristos<a href="https://journals.sagepub.com/doi/10.1177/0748730419854197">Why
9991.13Schristosshould we abolish Daylight Saving Time?</a>
10001.15Schristos<em>J Biol Rhythms.</em> 2019;34(3):227&ndash;230.
10011.13Schristosdoi:<a href="https://doi.org/10.1177/0748730419854197">10.1177/0748730419854197</a>.
10021.15SchristosThe Society for Research on Biological Rhythms
10031.18Schristosopposes <abbr>DST</abbr> changes and permanent <abbr>DST</abbr>,
10041.18Schristosand advocates that governments adopt
10051.13Schristos"permanent Standard Time for the health and safety of their citizens".</li>
10061.7Schristos</ul>
10071.7Schristos</section>
10081.7Schristos
10091.7Schristos<section>
10101.1Schristos<h2 id="precision">Precision timekeeping</h2>
10111.1Schristos<ul>
10121.1Schristos<li><a
10131.1Schristoshref="http://leapsecond.com/hpan/an1289.pdf">The
10141.1SchristosScience of Timekeeping</a> is a thorough introduction
10151.1Schristosto the theory and practice of precision timekeeping.</li>
10161.1Schristos<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
10171.14SchristosTime 2016</a> contains several freely readable papers.</li>
10181.13Schristos<li><a href="https://www.ntp.org"><abbr
10191.1Schristostitle="Network Time Protocol">NTP</abbr>: The Network
10201.1SchristosTime Protocol</a> (Internet <abbr>RFC</abbr> 5905)
10211.1Schristosdiscusses how to synchronize clocks of
10221.1SchristosInternet hosts.</li>
10231.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>
10241.2Schristosfamily of software algorithms can achieve accuracy to a few tens of
10251.2Schristosnanoseconds in scalable server farms without special hardware.</li>
10261.1Schristos<li>The <a
10271.1Schristoshref="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
10281.1SchristosTime Protocol</a> (<abbr
10291.1Schristostitle="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
10301.2Schristoscan achieve submicrosecond clock accuracy on a local area network
10311.2Schristoswith special-purpose hardware.</li>
10321.1Schristos<li><a
10331.18Schristoshref="https://www.rfc-editor.org/rfc/rfc4833">Timezone
10341.1SchristosOptions for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
10351.1Schristos(Internet <abbr>RFC</abbr> 4833)
10361.1Schristosspecifies a <a
10371.1Schristoshref="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
10381.1Schristosoption for a server to configure
10391.1Schristosa client's time zone and daylight saving settings automatically.</li>
10401.11Schristos<li><a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
10411.11SchristosScales</a> describes astronomical time scales like
10421.1Schristos<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
10431.1Schristos<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
10441.1Schristos<abbr title="Barycentric Dynamic Time">TDB</abbr>.
10451.1Schristos<li>The <a href="https://www.iau.org"><abbr
10461.1Schristostitle="International Astronomical Union">IAU</abbr></a>'s <a
10471.13Schristoshref="https://www.iausofa.org"><abbr
10481.1Schristostitle="Standards Of Fundamental Astronomy">SOFA</abbr></a>
10491.1Schristoscollection contains C and <a
10501.1Schristoshref="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
10511.1Schristoscode for converting among time scales like
10521.1Schristos<abbr title="International Atomic Time">TAI</abbr>,
10531.1Schristos<abbr>TDB</abbr>, <abbr>TDT</abbr> and
10541.13Schristos<abbr>UTC</abbr>. It is freely available under the
10551.13Schristos<a href="https://www.iausofa.org/tandc.html">SOFA license</a>.</li>
10561.1Schristos<li><a
10571.1Schristoshref="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
10581.1Schristos&ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
10591.1Schristosdiverse local time
10601.1Schristosscales used by each landed mission on Mars.</li>
10611.1Schristos<li><a href="http://leapsecond.com">LeapSecond.com</a> is
10621.1Schristosdedicated not only to leap seconds but to precise time and frequency
10631.1Schristosin general. It covers the state of the art in amateur timekeeping, and
10641.1Schristoshow the art has progressed over the past few decades.</li>
10651.7Schristos<li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
10661.7Schristoshref="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
10671.7Schristosand time-signal emissions</a>, International Telecommunication Union &ndash;
10681.7SchristosRadiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
10691.1Schristos<li><a
10701.1Schristoshref="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
10711.1Schristostitle="International Earth Rotation and Reference Systems Service">IERS</abbr>
10721.1SchristosBulletins</a> contains official publications of the International
10731.1SchristosEarth Rotation and Reference Systems Service, which decides when leap
10741.4Schristosseconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
10751.9Schristosvia an optional "<code>right</code>" configuration where a computer's internal
10761.9Schristos<code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
10771.9Schristosas opposed to the default "<code>posix</code>" configuration
10781.9Schristoswhere the internal clock ignores leap seconds.
10791.9SchristosThe two configurations agree for timestamps starting with 1972-01-01 00:00:00
10801.9Schristos<abbr>UTC</abbr> (<code>time_t</code> 63&thinsp;072&thinsp;000) and diverge for
10811.9Schristostimestamps starting with <code>time_t</code> 78&thinsp;796&thinsp;800,
10821.9Schristoswhich corresponds to the first leap second
10831.9Schristos1972-06-30 23:59:60 <abbr>UTC</abbr> in the "<code>right</code>" configuration,
10841.9Schristosand to
10851.9Schristos1972-07-01 00:00:00 <abbr>UTC</abbr> in the "<code>posix</code>" configuration.
10861.9SchristosIn practice the two configurations also agree for timestamps before
10871.9Schristos1972 even though the historical situation is messy, partly because
10881.9Schristosneither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
10891.14Schristosis well-defined for sufficiently old timestamps.</li>
10901.17Schristos<li><a href="https://kb.meinbergglobal.com/kb/time_sync/ntp/configuration/ntp_leap_second_file">The
10911.17Schristos<abbr>NTP</abbr> Leap Second File</a> covers the text file
10921.17Schristos<code>leap-seconds.list</code>, which lists the currently known leap seconds.
10931.17SchristosThe <abbr>IERS</abbr> maintains this file, and a copy is distributed by
10941.17Schristos<code><abbr>tzdb</abbr></code> for use by <abbr>NTP</abbr> implementations like
10951.17Schristos<a href="https://www.ntp.org">classic
10961.17Schristos<code><abbr title="Network Time Protocol Daemon">ntpd</abbr></code></a>
10971.17Schristosand <a href="https://ntpsec.org">NTPsec</a>.
10981.17SchristosThe <code><abbr>tz</abbr></code> database also distributes leap second
10991.17Schristosinformation in a differently-formatted <code>leapseconds</code> text file,
11001.17Schristosas well as in the "<code>right</code>" configuration in binary form; for
11011.17Schristosexample, <code>right/UTC</code> can be used
11021.17Schristosby <a href="https://chrony-project.org"><code>chrony</code></a>,
11031.17Schristosanother <abbr>NTP</abbr> implementation.</li>
11041.1Schristos<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
11051.1Schristosdiscusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
11061.1Schristosleap second so that they disagree with <abbr>UTC</abbr> by at most a
11071.1Schristoshalf second, even though every <abbr>POSIX</abbr> minute has exactly
11081.4Schristossixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
11091.1Schristos"<code>posix</code>" configuration, is <a
11101.1Schristoshref="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
11111.17Schristosthe abovementioned <abbr>NTP</abbr> implementations, <a
11121.12Schristoshref="https://github.com/google/unsmear">supports</a> conversion between
11131.12Schristos<abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
11141.7Schristoscloud service providers. However, according to
11151.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc8633#section-3.7.1">&sect;3.7.1 of
11161.7SchristosNetwork Time Protocol Best Current Practices</a>
11171.7Schristos(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
11181.9Schristosapplications requiring accurate <abbr>UTC</abbr> or civil time,
11191.7Schristosand is intended for use only in single, well-controlled environments.</li>
11201.1Schristos<li>The <a
11211.1Schristoshref="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
11221.1SchristosSecond Discussion List</a> covers <a
11231.1Schristoshref="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
11241.1Schristosand Klepczynski's 1999 proposal to discontinue leap seconds</a>,
11251.1Schristosdiscussed further in
11261.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
11271.1Schristosleap second: its history and possible future</a>.
11281.1Schristos<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
11291.1Schristosmight be redefined
11301.1Schristoswithout Leap Seconds</a> gives pointers on this
11311.14Schristoscontentious issue.
11321.14SchristosThe General Conference on Weights and Measures
11331.16Schristos<a href="https://www.bipm.org/en/cgpm-2022/resolution-4">decided in 2022</a>
11341.17Schristosto discontinue the use of leap seconds by 2035, and requested that no
11351.17Schristosdiscontinuous adjustments be made to UTC for at least a century.
11361.16SchristosThe World Radiocommunication Conference <a
11371.16Schristoshref="https://www.itu.int/dms_pub/itu-r/opb/act/R-ACT-WRC.15-2023-PDF-E.pdf">resolved
11381.16Schristosin 2023</a> to cooperate with this process.
11391.17Schristos<a href="https://www.preprints.org/manuscript/202406.0043/v1">A proposal
11401.17Schristosto change the leap-second adjustments to Coordinated Universal Time</a>
11411.17Schristos(doi:<a href="https://doi.org/10.1088/1681-7575/ad6266">10.1088/1681-7575/ad6266</a>)
11421.17Schristoswould replace leap seconds with 13-second leap smears occurring once per
11431.17Schristosdecade until 2100, with leap smears after that gradually increasing in size.
11441.17SchristosHowever, there is still no consensus on whether this is the best way
11451.17Schristosto replace leap seconds.
11461.14Schristos</li>
11471.1Schristos</ul>
11481.6Schristos</section>
11491.6Schristos
11501.6Schristos<section>
11511.1Schristos<h2 id="notation">Time notation</h2>
11521.1Schristos<ul>
11531.13Schristos<li>The <a id="CLDR" href="https://cldr.unicode.org">Unicode Common Locale Data
11541.1SchristosRepository (<abbr>CLDR</abbr>) Project</a> has localizations for time
11551.1Schristoszone names, abbreviations, identifiers, and formats. For example, it
11561.1Schristoscontains French translations for "Eastern European Summer Time",
11571.1Schristos"<abbr title="Eastern European Summer Time">EEST</abbr>", and
11581.1Schristos"Bucharest". Its
11591.1Schristos<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
11601.1Schristoscharts</a> show these values for many locales. Data values are available in
11611.1Schristosboth <abbr title="Locale Data Markup Language">LDML</abbr>
11621.1Schristos(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
11631.1Schristos<li>
11641.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
11651.6Schristosthe international standard date and time notation</a> covers
11661.1Schristos<a
11671.6Schristoshref="https://www.iso.org/standard/70907.html"><em><abbr
11681.6Schristostitle="International Organization for Standardization">ISO</abbr>
11691.6Schristos8601-1:2019 &ndash; Date and time &ndash; Representations for information
11701.6Schristosinterchange &ndash; Part 1: Basic rules</em></a>.</li>
11711.1Schristos<li>
11721.6Schristos<a href="https://www.w3.org/TR/xmlschema/#dateTime"><abbr>XML</abbr>
11731.1SchristosSchema: Datatypes &ndash; dateTime</a> specifies a format inspired by
11741.1Schristos<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
11751.18Schristos<li><a href="https://www.rfc-editor.org/rfc/rfc5322#section-3.3">&sect;3.3 of
11761.1SchristosInternet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
11771.1Schristosspecifies the time notation used in email and <a
11781.1Schristoshref="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
11791.1Schristosheaders.</li>
11801.1Schristos<li>
11811.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc3339">Date and Time
11821.1Schristoson the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
11831.17Schristosspecifies an <abbr>ISO</abbr> 8601 profile for use in new Internet protocols.
11841.18SchristosAn extension, <a href="https://www.rfc-editor.org/rfc/rfc9557">Date
11851.17Schristosand Time on the Internet: Timestamps with Additional Information</a>
11861.17Schristos(Internet <abbr>RFC</abbr> 9557) extends this profile
11871.17Schristosto let you specify the <code><abbr>tzdb</abbr></code> timezone of a timestamp
11881.17Schristosvia suffixes like "<code>[Asia/Tokyo]</code>".
11891.1Schristos<li>
11901.7Schristos<a href="https://web.archive.org/web/20190130042457/https://www.hackcraft.net/web/datetime/">Date &amp; Time
11911.1SchristosFormats on the Web</a> surveys web- and Internet-oriented date and time
11921.1Schristosformats.</li>
11931.1Schristos<li>Alphabetic time zone abbreviations should not be used as unique
11941.1Schristosidentifiers for <abbr>UT</abbr> offsets as they are ambiguous in
11951.1Schristospractice. For example, in English-speaking North America
11961.1Schristos"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>,
11971.1Schristosbut in China it denotes 8 hours ahead of <abbr>UT</abbr>,
11981.1Schristosand French-speaking North Americans prefer
11991.1Schristos"<abbr title="Heure Normale du Centre">HNC</abbr>" to
12001.1Schristos"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
12011.2Schristosdatabase contains English abbreviations for many timestamps;
12021.1Schristosunfortunately some of these abbreviations were merely the database maintainers'
12031.1Schristosinventions, and these have been removed when possible.</li>
12041.1Schristos<li>Numeric time zone abbreviations typically count hours east of
12051.1Schristos<abbr>UT</abbr>, e.g., +09 for Japan and
12061.17Schristos&minus;10 for Hawaii. However, <abbr>POSIX</abbr> proleptic
12071.17Schristos<code><abbr>TZ</abbr></code> settings use the opposite convention.
12081.1SchristosFor example, one might use <code><abbr>TZ</abbr>="<abbr
12091.1Schristostitle="Japan Standard Time">JST</abbr>-9"</code> and
12101.1Schristos<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
12111.1Schristosfor Japan and Hawaii, respectively. If the
12121.1Schristos<code><abbr>tz</abbr></code> database is available, it is usually better to use
12131.1Schristossettings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
12141.1Schristos<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
12151.2Schristosconfusion, handle old timestamps better, and insulate you better from
12161.1Schristosany future changes to the rules. One should never set
12171.1Schristos<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
12181.1Schristos<code>"GMT-9"</code>, though, since this would incorrectly imply that
12191.1Schristoslocal time is nine hours ahead of <abbr>UT</abbr> and the time zone
12201.1Schristosis called "<abbr>GMT</abbr>".</li>
12211.1Schristos</ul>
12221.6Schristos</section>
12231.6Schristos
12241.6Schristos<section>
12251.1Schristos<h2 id="see-also">See also</h2>
12261.1Schristos<ul>
12271.7Schristos<li><a href="theory.html">Theory and pragmatics of the
12281.7Schristos<code><abbr>tz</abbr></code> code and data</a></li>
12291.1Schristos<li><a href="tz-art.html">Time and the Arts</a></li>
12301.1Schristos</ul>
12311.6Schristos</section>
12321.6Schristos
12331.6Schristos<footer>
12341.1Schristos<hr>
12351.1SchristosThis web page is in the public domain, so clarified as of
12361.1Schristos2009-05-17 by Arthur David Olson.
12371.1Schristos<br>
12381.1SchristosPlease send corrections to this web page to the
12391.1Schristos<a href="mailto:tz@iana.org">time zone mailing list</a>.
12401.6Schristos</footer>
12411.1Schristos</body>
12421.1Schristos</html>
1243