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.20Schristos<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.17Schristos<a href="https://musl.libc.org">musl libc</a>,
881.1Schristos<a href="https://www.mysql.com">MySQL</a>,
891.1Schristos<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
901.1Schristostitle="Web Operating System">webOS</abbr></a>,
911.7Schristos<a href="https://en.wikipedia.org/wiki/IBM_AIX"><abbr
921.1Schristostitle="Advanced Interactive eXecutive">AIX</abbr></a>,
931.6Schristos<a href="https://www.apple.com/ios"><abbr
941.1Schristostitle="iPhone OS">iOS</abbr></a>,
951.6Schristos<a href="https://www.apple.com/macos">macOS</a>,
961.1Schristos<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
971.6Schristos<a href="https://www.vmssoftware.com">Open<abbr
981.1Schristostitle="Virtual Memory System">VMS</abbr></a>,
991.20Schristos<a href="https://www.oracle.com/database/">Oracle Database</a>,
1001.20Schristos<a href="https://www.oracle.com/solaris">Oracle Solaris</a>,
1011.20Schristosand <a href="https://blackberry.qnx.com/en">QNX</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.20Schristosenvironment 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.20Schristosthe 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.20Schristos<a href="https://pubs.opengroup.org/onlinepubs/9799919799/utilities/pax.html#tag_20_94_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.20Schristos“<code>version</code>” whose first (and currently only) line is the version.
1771.20Schristos<a href="https://ftp.iana.org/tz/releases/">Older archived releases are
1781.20Schristosavailable</a> via
1791.20Schristos<a href="https://en.wikipedia.org/wiki/HTTPS"><abbr
1801.20Schristostitle="Hypertext Transfer Protocol Secure">HTTPS</abbr></a>,
1811.20Schristos<a href="https://en.wikipedia.org/wiki/Rsync"><abbr
1821.20Schristostitle="remote sync">rsync</abbr></a>, and
1831.20Schristos<a href="https://en.wikipedia.org/wiki/FTP"><abbr
1841.20Schristostitle="File Transfer Protocol">FTP</abbr></a>.
1851.20Schristos<p>Alternatively, a development repository of code and data can bem
1861.1Schristosretrieved from <a href="https://github.com">GitHub</a> via the shell
1871.1Schristoscommand:</p>
1881.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>
1891.1Schristos</code></pre>
1901.1Schristos<p>
1911.1SchristosSince version 2012e, each release has been tagged in development repositories.
1921.1SchristosUntagged commits are less well tested and probably contain
1931.1Schristosmore errors.</p>
1941.1Schristos<p>
1951.1SchristosAfter obtaining the code and data files, see the
1961.1Schristos<code>README</code> file for what to do next.
1971.1SchristosThe code lets you compile the <code><abbr>tz</abbr></code> source files into
1981.2Schristosmachine-readable binary files, one for each location. The binary files
1991.17Schristosare in a special format specified by
2001.20Schristos<a href="https://www.rfc-editor.org/rfc/rfc9636">The
2011.17SchristosTime Zone Information Format (<abbr>TZif</abbr>)</a>
2021.18Schristos(Internet <abbr title="Request For Comments">RFC</abbr> 9636).
2031.2SchristosThe code also lets
2041.2Schristosyou read a <abbr>TZif</abbr> file and interpret timestamps for that
2051.1Schristoslocation.</p>
2061.6Schristos</section>
2071.6Schristos
2081.6Schristos<section>
2091.1Schristos<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
2101.1Schristos<p>
2111.1SchristosThe <code><abbr>tz</abbr></code> code and data
2121.1Schristosare by no means authoritative. If you find errors, please
2131.17Schristosemail changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
2141.20Schristosthe time zone mailing list.
2151.20SchristosThe mailing list and its archives are public,
2161.20Schristosso please do not send confidential information.
2171.20SchristosSee
2181.17Schristos<a href="https://lists.iana.org/postorius/lists/tz.iana.org/">the mailing
2191.20Schristoslist’s main page</a> to subscribe or to browse its archive of old messages.
2201.17Schristos<a href="https://tzdata-meta.timtimeonline.com">Metadata for mailing list
2211.5Schristosdiscussions</a> and corresponding data changes can be
2221.5Schristosgenerated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>.
2231.5Schristos</p>
2241.1Schristos<p>
2251.1SchristosChanges to the <code><abbr>tz</abbr></code> code and data are often
2261.1Schristospropagated to clients via operating system updates, so
2271.1Schristosclient <code><abbr>tz</abbr></code> data can often be corrected by
2281.1Schristosapplying these updates. With GNU/Linux and similar systems, if your
2291.1Schristosmaintenance provider has not yet adopted the
2301.1Schristoslatest <code><abbr>tz</abbr></code> data, you can often short-circuit
2311.1Schristosthe process by tailoring the generic instructions in
2321.1Schristosthe <code><abbr>tz</abbr> README</code> file and installing the latest
2331.1Schristosdata yourself. System-specific instructions for installing the
2341.1Schristoslatest <code><abbr>tz</abbr></code> data have also been published
2351.17Schristosfor <a href="https://www.ibm.com/support/pages/aix-time-zone-olson-tzdata-updates"><abbr>AIX</abbr></a>,
2361.1Schristos<a
2371.10Schristoshref="https://source.android.com/devices/tech/config/timezone-rules">Android</a>,
2381.1Schristos<a
2391.11Schristoshref="https://unicode-org.github.io/icu/userguide/datetime/timezone/"><abbr
2401.1Schristostitle="International Components for Unicode">ICU</abbr></a>,
2411.11Schristos<a href="https://www.ibm.com/support/pages/java-sdk-time-zone-update-utility"><abbr>IBM</abbr>
2421.9SchristosJDK</a>,
2431.9Schristos<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
2441.1Schristoshref="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
2451.9Schristos<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
2461.11Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">OpenJDK/Oracle JDK</a>.
2471.1Schristos</p>
2481.12Schristos<p>Since version 2013a,
2491.12Schristossources for the <code><abbr>tz</abbr></code> database have been
2501.1Schristos<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
2511.1Schristostitle="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
2521.1Schristos<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
2531.1Schristoswith lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
2541.1Schristostitle="linefeed">LF</abbr></a>,
2551.1Schristoswhich can be modified by common text editors such
2561.1Schristosas <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
2571.20Schristos<a href="https://gedit-text-editor.org">gedit</a>, and
2581.1Schristos<a href="https://www.vim.org">vim</a>.
2591.1SchristosSpecialized source-file editing can be done via the
2601.1Schristos<a href="https://packagecontrol.io/packages/zoneinfo">Sublime
2611.1Schristoszoneinfo</a> package for <a
2621.1Schristoshref="https://www.sublimetext.com">Sublime Text</a> and the <a
2631.1Schristoshref="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
2641.1Schristoszoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
2651.1SchristosStudio Code</a>.
2661.1Schristos</p>
2671.1Schristos<p>
2681.1SchristosFor further information about updates, please see
2691.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc6557">Procedures for
2701.17SchristosMaintaining the Time Zone Database</a> (Internet <abbr>RFC</abbr> 6557).
2711.17SchristosMore detail can be
2721.7Schristosfound in <a href="theory.html">Theory and pragmatics of the
2731.7Schristos<code><abbr>tz</abbr></code> code and data</a>.
2741.2Schristos<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
2751.2Schristosdisplays changes between recent <code><abbr>tzdb</abbr></code> versions.
2761.1Schristos</p>
2771.6Schristos</section>
2781.6Schristos
2791.6Schristos<section>
2801.14Schristos<h2 id="coordinating">Coordinating with governments and distributors</h2>
2811.14Schristos<p>
2821.14SchristosAs discussed in
2831.20Schristos“<a href="https://www.icann.org/en/blogs/details/how-time-zones-are-coordinated-13-03-2023-en">How
2841.20SchristosTime Zones Are Coordinated</a>”, the time zone database relies on
2851.14Schristoscollaboration among governments, the time zone database volunteer
2861.14Schristoscommunity, and data distributors downstream.
2871.14Schristos<p>
2881.14SchristosIf your government plans to change its time zone boundaries or
2891.20Schristosdaylight saving rules, please send email as described in
2901.20Schristos"<a href="#changes">Changes to the <code><abbr>tz</abbr></code> database</a>".
2911.20SchristosDo this well in advance,
2921.14Schristosas this will lessen confusion and will coordinate updates to many cell phones,
2931.14Schristoscomputers, and other devices around the world.
2941.14SchristosIn your email, please cite the legislation or regulation that specifies
2951.14Schristosthe change, so that it can be checked for details such as the exact times
2961.14Schristoswhen clock transitions occur.
2971.14SchristosIt is OK if a rule change is planned to affect clocks
2981.14Schristosfar into the future, as a long-planned change can easily be reverted
2991.20Schristosor otherwise altered with a year’s notice before the change would have
3001.14Schristosaffected clocks.</p>
3011.14Schristos<p>
3021.14SchristosThere is no fixed schedule for <code><abbr>tzdb</abbr></code> releases.
3031.14SchristosHowever, typically a release occurs every few months.
3041.14SchristosMany downstream timezone data distributors wait for
3051.14Schristosa <code><abbr>tzdb</abbr></code> release before they produce an update
3061.14Schristosto time zone behavior in consumer devices and software products.
3071.14SchristosAfter a release, various parties must integrate, test,
3081.14Schristosand roll out an update before <a
3091.14Schristoshref="https://en.wikipedia.org/wiki/End_user">end users</a> see changes.
3101.14SchristosThese updates can be expensive, for both the <a
3111.14Schristoshref="https://en.wikipedia.org/wiki/Quality_assurance">quality
3121.14Schristosassurance</a> process and the overall cost of shipping and installing
3131.20Schristosupdates to each device’s copy of <code><abbr>tzdb</abbr></code>.
3141.14SchristosUpdates may be batched with other updates and may take substantial
3151.14Schristostime to reach end users after a release.
3161.14SchristosOlder devices may no longer be supported and thus may never be updated,
3171.14Schristoswhich means they will continue to use out-of-date rules.</p>
3181.14Schristos<p>
3191.14SchristosFor these reasons any rule change should be promulgated at least a
3201.14Schristosyear before it affects how clocks operate; otherwise, there is a good
3211.14Schristoschance that many clocks will be wrong due to delays in propagating updates,
3221.14Schristosand that residents will be confused or even actively resist the change.
3231.20SchristosThe shorter the notice, the more likely clock problems will arise; see “<a
3241.14Schristoshref="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
3251.20Schristosthe Timing of Time Zone Changes</a>” for examples.
3261.14Schristos</p>
3271.14Schristos</section>
3281.14Schristos
3291.14Schristos<section>
3301.1Schristos<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
3311.1Schristos<ul>
3321.1Schristos<li>The article
3331.1Schristos<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
3341.1Schristosan encyclopedic summary.</li>
3351.1Schristos<li><a href="tz-how-to.html">How to Read the
3361.1Schristostz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
3371.1Schristosdatabase format.</li>
3381.1Schristos<li><a
3391.1Schristoshref="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
3401.1Schristosliterary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
3411.20Schristosdatabase’s style.</li>
3421.10Schristos<li><a href="https://doi.org/10.1145/3340301.3341125">What time is it:
3431.10Schristosmanaging time in the internet</a> analyzes the database longitudinally.</li>
3441.1Schristos</ul>
3451.6Schristos</section>
3461.6Schristos
3471.6Schristos<section>
3481.1Schristos<h2 id="web">Web sites using recent versions of the
3491.1Schristos<code><abbr>tz</abbr></code> database</h2>
3501.1Schristos<p>
3511.1SchristosThese are listed roughly in ascending order of complexity and fanciness.
3521.1Schristos</p>
3531.1Schristos<ul>
3541.20Schristos<li><a href="https://time.is">Time.is</a> shows locations’
3551.1Schristostime and zones.</li>
3561.1Schristos<li><a href="https://www.timejones.com">TimeJones.com</a>,
3571.1Schristos<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
3581.7Schristos<a href="https://www.worldclock.com">The World Clock</a>
3591.1Schristosare time zone converters.</li>
3601.8Schristos<li><a href="https://timezonedb.com/download">TimeZoneDB Database</a>
3611.8Schristospublishes <code><abbr>tzdb</abbr></code>-derived data in
3621.8Schristos<a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr
3631.8Schristostitle="comma-separated values">CSV</abbr></a> and
3641.8Schristosin <a href="https://en.wikipedia.org/wiki/SQL"><abbr
3651.8Schristostitle="Structured Query Language">SQL</abbr></a> form.</li>
3661.1Schristos<li><a
3671.6Schristoshref="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
3681.1Schristoslets you see the <code><abbr>TZ</abbr></code> values directly.</li>
3691.1Schristos<li><a
3701.13Schristoshref="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
3711.1SchristosTime in 1000 Places</a> uses descriptions of the values.</li>
3721.20Schristos<li><a href="https://www.timeanddate.com/worldclock/">The World Clock –
3731.1SchristosWorldwide</a> lets you sort zone names and convert times.</li>
3741.1Schristos<li><a href="https://24timezones.com">24TimeZones</a> has a world
3751.1Schristostime map and a time converter.</li>
3761.1Schristos<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
3771.1Schristoscalculates the current time difference between locations.</li>
3781.13Schristos<li><a href="https://www.wx-now.com">Weather Now</a> and
3791.13Schristos<a href="https://www.thetimenow.com">The Time Now</a> list the weather too.</li>
3801.1Schristos</ul>
3811.6Schristos</section>
3821.6Schristos
3831.6Schristos<section>
3841.1Schristos<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
3851.1Schristos<ul>
3861.20Schristos<li><a href="https://www.rfc-editor.org/rfc/rfc7808">Time Zone
3871.20SchristosData Distribution Service</a> (TZDIST, Internet <abbr>RFC</abbr> 7808)
3881.20Schristosis associated with
3891.20Schristos<a href="https://www.rfc-editor.org/rfc/rfc7809">CalDAV</a>
3901.1Schristos(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
3911.2Schristostransferring time zone data by reference.
3921.8Schristos<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
3931.20Schristosimplementations</a> are available.</li>
3941.20Schristos<li>The <a href="https://www.rfc-editor.org/rfc/rfc5545">iCalendar format</a>
3951.20Schristos(Internet <abbr>RFC</abbr> 5445)
3961.1Schristoscovers time zone
3971.1Schristosdata; see its VTIMEZONE calendar component.
3981.1SchristosThe iCalendar format requires specialized parsers and generators; a
3991.18Schristosvariant <a href="https://www.rfc-editor.org/rfc/rfc6321">xCal</a>
4001.1Schristos(Internet <abbr>RFC</abbr> 6321) uses
4011.1Schristos<a href="https://www.w3.org/XML/"><abbr
4021.1Schristostitle="Extensible Markup Language">XML</abbr></a> format, and a variant
4031.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc7265">jCal</a>
4041.1Schristos(Internet <abbr>RFC</abbr> 7265)
4051.17Schristosuses <a href="https://www.json.org/json-en.html"><abbr
4061.1Schristostitle="JavaScript Object Notation">JSON</abbr></a> format.</li>
4071.1Schristos</ul>
4081.6Schristos</section>
4091.6Schristos
4101.6Schristos<section>
4111.1Schristos<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
4121.7Schristos<p>Although some of these do not fully support
4131.7Schristos<code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
4141.7Schristosdistributions you can generally work around compatibility problems by
4151.7Schristosrunning the command <code>make rearguard_tarballs</code> and compiling
4161.7Schristosfrom the resulting tarballs instead.</p>
4171.1Schristos<ul>
4181.17Schristos<li><a href="https://github.com/libical/vzic">Vzic</a> is a <a
4191.14Schristoshref="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>
4201.1Schristosprogram that compiles
4211.1Schristos<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
4221.1SchristosVzic is freely
4231.1Schristosavailable under the <a
4241.1Schristoshref="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
4251.1SchristosGeneral Public License (<abbr
4261.1Schristostitle="General Public License">GPL</abbr>)</a>.</li>
4271.1Schristos<li><a
4281.4Schristoshref="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
4291.1Schristoscontains a script <code>parse_olson</code> that compiles
4301.1Schristos<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
4311.1Schristosmodules. It is part of the Perl <a
4321.4Schristoshref="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
4331.4Schristoswhich is freely
4341.1Schristosavailable under both the <abbr>GPL</abbr> and the Perl Artistic
4351.1SchristosLicense. DateTime::TimeZone also contains a script
4361.1Schristos<code>tests_from_zdump</code> that generates test cases for each clock
4371.1Schristostransition in the <code><abbr>tz</abbr></code> database.</li>
4381.1Schristos<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
4391.1SchristosDatabase Parser</a> is a
4401.14Schristos<a href="https://en.wikipedia.org/wiki/C++">C++</a> parser and
4411.17Schristosruntime library with a <a
4421.17Schristoshref="https://en.cppreference.com/w/cpp/chrono"><code>std::chrono</code> API</a>
4431.17Schristosthat is a standard part of C++.
4441.1SchristosIt is freely available under the
4451.1Schristos<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
4461.13Schristos<li><a id="ICU" href="https://icu.unicode.org">International Components for
4471.1SchristosUnicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
4481.14Schristoshref="https://en.wikipedia.org/wiki/Java_(programming_language)">Java</a>
4491.1Schristoslibraries for internationalization that
4501.1Schristoshas a compiler from <code><abbr>tz</abbr></code> source
4511.1Schristosand from <abbr title="Common Locale Data Repository">CLDR</abbr> data
4521.1Schristos(mentioned <a href="#CLDR">below</a>)
4531.1Schristosinto an <abbr>ICU</abbr>-specific format.
4541.1Schristos<abbr>ICU</abbr> is freely available under a
4551.1Schristos<abbr>BSD</abbr>-style license.</li>
4561.1Schristos<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
4571.1Schristosthe <a href="https://elixir-lang.org">Elixir</a> language downloads
4581.7Schristosand compiles <code><abbr>tz</abbr></code> source and exposes <abbr
4591.1Schristostitle="Application Program Interface">API</abbr>s for use. It is
4601.1Schristosfreely available under the <abbr>MIT</abbr> license.</li>
4611.1Schristos<li>Java-based compilers and libraries include:
4621.1Schristos<ul>
4631.1Schristos<li>The <a
4641.9Schristoshref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
4651.1Schristostool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
4661.17Schristos<a href="https://openjdk.org">OpenJDK</a> and
4671.17Schristos<a href="https://jdk.java.net">Oracle JDK</a>.
4681.9SchristosAlthough its source code is proprietary, its executable is available under the
4691.9Schristos<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
4701.9SchristosTimezone Updater License Agreement</a>.</li>
4711.1Schristos<li>The <a
4721.4Schristoshref="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
4731.6SchristosSE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
4741.4Schristoshref="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
4751.1Schristoswhich is freely available under a <abbr>BSD</abbr>-style license.</li>
4761.20Schristos<li><a href="https://www.joda.org/joda-time/">Joda-Time – Java date
4771.1Schristosand time <abbr>API</abbr></a> contains a class
4781.1Schristos<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
4791.1Schristos<code><abbr>tz</abbr></code> source into a binary format. It inspired
4801.1SchristosJava 8 <code>java.time</code>, which its users should migrate to once
4811.1Schristosthey can assume Java 8 or later. It is available under the <a
4821.1Schristoshref="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
4831.9Schristos<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
4841.7Schristoshref="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
4851.20Schristosare alternatives to TZUpdater. IANA Updater’s license is unclear;
4861.9SchristosZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
4871.4Schristos<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
4881.4Schristostime library for Android</a> and
4891.17Schristos<a href="https://github.com/MenoData/Time4J">Time4J: Advanced date,
4901.4Schristostime and interval library for Java</a> compile
4911.4Schristos<code><abbr>tz</abbr></code> source into a binary format.
4921.4SchristosTime4A is available under the Apache License and Time4J is
4931.1Schristosavailable under the <a
4941.1Schristoshref="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
4951.1SchristosGeneral Public License (<abbr title="Lesser General Public
4961.1SchristosLicense">LGPL</abbr>)</a>.</li>
4971.1Schristos<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
4981.1SchristosJava-based libraries.</li>
4991.1Schristos</ul>
5001.20Schristos<li><a href="https://nodatime.org">Noda Time – Date and
5011.1Schristostime <abbr>API</abbr> for .NET</a>
5021.4Schristosis like Joda-Time and Time4J, but for the .NET framework instead of Java.
5031.4SchristosIt is freely available under the Apache License.</li>
5041.8Schristos<li>Many modern
5051.8Schristos<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
5061.8Schristosruntimes support <code><abbr>tz</abbr></code> natively via the
5071.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>.
5081.10SchristosThis can be used as-is or with most of the following libraries,
5091.16Schristosmany of which also support runtimes lacking the <code>timeZone</code> option.
5101.1Schristos<ul>
5111.8Schristos<li>The <a
5121.16Schristoshref="https://github.com/formatjs/date-time-format-timezone"><code>Intl.DateTimeFormat</code>
5131.8Schristostimezone polyfill</a>
5141.8Schristosis freely available under a <abbr>BSD</abbr>-style license.</li>
5151.17Schristos<li>The <a href="https://date-fns.org">date-fns</a>
5161.10Schristoslibrary manipulates timezone-aware timestamps in browsers and
5171.10Schristosin <a href="https://nodejs.org/en/">Node.js</a>.
5181.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5191.10Schristos<li><a href="https://github.com/iamkun/dayjs">Day.js</a> is a
5201.10Schristosminimalist replacement for the date and time API of
5211.10Schristosthe <a href="https://momentjs.com/docs/">now-legacy Moment.js</a> date
5221.10Schristosmanipulation library.
5231.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5241.10Schristos<li><a href="https://moment.github.io/luxon/">Luxon</a> improves
5251.16Schristostimezone support for the <code>Intl</code> API.
5261.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5271.1Schristos<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
5281.10SchristosMoment.js plugin.
5291.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5301.8Schristos<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
5311.8SchristosJavaScript library that supports date arithmetic that is time zone
5321.8Schristosaware. It is freely available under the <abbr>MIT</abbr> license.</li>
5331.10Schristos<li><a href="https://www.npmjs.com/package/@tubular/time">@tubular/time</a>
5341.10Schristossupports live <code><abbr>tzdb</abbr></code> updates,
5351.10Schristosastronomical and atomic time, a command-line interface,
5361.10Schristosand full <a
5371.10Schristoshref="https://en.wikipedia.org/wiki/TypeScript">TypeScript</a>.
5381.10SchristosIts companion <a
5391.10Schristoshref="https://www.npmjs.com/package/@tubular/time-tzdb">@tubular/time-tzdb</a>
5401.10Schristoscan generate <abbr>TZif</abbr> and other files, and a companion website
5411.10Schristos<a href="https://tzexplorer.org">Timezone Database Explorer</a> lets you
5421.10Schristosconvert timestamps, view transition histories, and download code and data.
5431.10SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5441.1Schristos</ul>
5451.10SchristosThe proposed <a
5461.16Schristoshref="https://github.com/tc39/proposal-temporal"><code>Temporal</code>
5471.10Schristosobjects</a> let programs access an abstract view of
5481.10Schristos<code><abbr>tzdb</abbr></code> data, and are designed to replace <a
5491.20Schristoshref="https://codeofmatt.com/javascript-date-type-is-horribly-broken/">JavaScript’s
5501.16Schristosproblematic <code>Date</code> objects</a> when working with dates and times.
5511.17Schristos<li><a href="https://github.com/JuliaTime">JuliaTime</a> contains a
5521.1Schristoscompiler from <code><abbr>tz</abbr></code> source into
5531.17Schristos<a href="https://julialang.org">Julia</a>. It is freely available
5541.1Schristosunder the <abbr>MIT</abbr> license.</li>
5551.20Schristos<li><a href="https://github.com/pavkam/tzdb"><abbr>TZDB</abbr> –
5561.6Schristos<abbr>IANA</abbr> Time Zone Database for Delphi/<abbr
5571.6Schristostitle="Free Pascal Compiler">FPC</abbr></a>
5581.2Schristoscompiles from <code><abbr>tz</abbr></code> source into
5591.2Schristos<a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
5601.2Schristosas compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
5611.2Schristosand <a
5621.2Schristoshref="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
5631.2SchristosIt is freely available under a <abbr>BSD</abbr>-style license.</li>
5641.20Schristos<li><a href="https://pythonhosted.org/pytz/">pytz – World Timezone
5651.1SchristosDefinitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
5661.1Schristos<a href="https://www.python.org">Python</a>.
5671.9SchristosIt is freely available under a <abbr>BSD</abbr>-style license.
5681.11SchristosIn code that can assume Python 3.6 or later it is largely superseded; see <a
5691.11Schristoshref="https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html">pytz:
5701.11SchristosThe Fastest Footgun in the West</a>.</li>
5711.20Schristos<li><a href="https://tzinfo.github.io">TZInfo –
5721.1SchristosRuby Timezone Library</a>
5731.1Schristoscompiles <code><abbr>tz</abbr></code> source into
5741.1Schristos<a href="https://www.ruby-lang.org/en/">Ruby</a>.
5751.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
5761.13Schristos<li>The <a href="https://www.squeaksource.com/Chronos/">Chronos Date/Time
5771.1SchristosLibrary</a> is
5781.1Schristosa <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
5791.1Schristoslibrary that compiles <code><abbr>tz</abbr></code> source into a time
5801.1Schristoszone repository whose format
5811.1Schristosis either proprietary or an <abbr>XML</abbr>-encoded
5821.1Schristosrepresentation.</li>
5831.1Schristos<li><a id="Tcl" href="https://tcl.tk">Tcl</a>
5841.1Schristoscontains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
5851.1Schristossource into text files, along with a runtime that can read those
5861.1Schristosfiles. Tcl is freely available under a <abbr>BSD</abbr>-style
5871.1Schristoslicense.</li>
5881.1Schristos</ul>
5891.6Schristos</section>
5901.6Schristos
5911.6Schristos<section>
5921.2Schristos<h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
5931.1Schristos<ul>
5941.1Schristos<li>The <a
5951.1Schristoshref="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
5961.1SchristosLibrary</a>
5971.1Schristoshas an independent, thread-safe implementation of
5981.2Schristosa <abbr>TZif</abbr> file reader.
5991.1SchristosThis library is freely available under the LGPL
6001.1Schristosand is widely used in <abbr>GNU</abbr>/Linux systems.</li>
6011.20Schristos<li><a href="https://www.gnome.org">GNOME</a>’s
6021.1Schristos<a href="https://developer.gnome.org/glib/">GLib</a> has
6031.2Schristosa <abbr>TZif</abbr> file reader written in C that
6041.1Schristoscreates a <code>GTimeZone</code> object representing sets
6051.1Schristosof <abbr>UT</abbr> offsets.
6061.1SchristosIt is freely available under the <abbr>LGPL</abbr>.</li>
6071.1Schristos<li>The
6081.20Schristos<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>’s
6091.1Schristos<code>baltzo::TimeZoneUtil</code> component contains a C++
6101.2Schristosimplementation of a <abbr>TZif</abbr> file reader. It is freely available under
6111.1Schristosthe Apache License.</li>
6121.1Schristos<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
6131.1Schristoslibrary that translates between <abbr>UT</abbr> and civil time and
6141.2Schristoscan read <abbr>TZif</abbr> files. It is freely available under the Apache
6151.1SchristosLicense.</li>
6161.20Schristos<li>The <a href="https://golang.org">Go programming language</a>
6171.20Schristoshas a <abbr>TZif</abbr> file reader <a
6181.20Schristoshref="https://pkg.go.dev/time#LoadLocationFromTZData"><code>LoadLocationFromTZData</code></a>.</li>
6191.16Schristos<li>The
6201.16Schristos<a href="https://github.com/nayarsystems/posix_tz_db"><code>posix_tz_db</code>
6211.16Schristospackage</a> contains Python code
6221.16Schristosto generate <abbr>CSV</abbr> and <abbr>JSON</abbr> tables that map
6231.17Schristos<code><abbr>tz</abbr></code> settings to proleptic TZ approximations.
6241.16SchristosFor example, it maps <code>"Africa/Cairo"</code>
6251.16Schristosto <code>"EET-2EEST,M4.5.5/0,M10.5.4/24"</code>,
6261.16Schristosan approximation valid for Cairo timestamps from 2023 on.
6271.17SchristosThis can help porting to platforms that support only proleptic TZ.
6281.16SchristosThe package is freely available under the MIT license.</li>
6291.1Schristos<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
6301.2Schristoslibrary that reads <abbr>TZif</abbr> files and converts
6311.2Schristostimestamps from one time zone or format to another.
6321.1SchristosIt is used by <a href="https://secure.php.net"><abbr
6331.1Schristostitle="PHP: Hypertext Preprocessor">PHP</abbr></a>,
6341.1Schristos<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
6351.1Schristosand <a href="https://www.mongodb.com">MongoDB</a>.
6361.1SchristosIt is freely available under the <abbr>MIT</abbr> license.</li>
6371.1Schristos<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
6381.2Schristos<abbr>TZif</abbr> file reader.</li>
6391.4Schristos<li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
6401.1SchristosDateTime::TimeZone::Tzfile</a>
6411.2Schristosis a <abbr>TZif</abbr> file reader written in Perl.
6421.1SchristosIt is freely available under the same terms as Perl
6431.1Schristos(dual <abbr>GPL</abbr> and Artistic license).</li>
6441.9Schristos<li>Python has a <a id="python-zoneinfo"
6451.11Schristoshref="https://docs.python.org/3/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
6461.8Schristosclass</a> that reads <abbr>TZif</abbr> data and creates objects
6471.8Schristosthat represent <code><abbr>tzdb</abbr></code> timezones.
6481.8SchristosPython is freely available under the
6491.11Schristos<a href="https://docs.python.org/3/license.html">Python Software Foundation
6501.8SchristosLicense</a>.
6511.17SchristosA companion <a id="pypi-tzdata" href="https://pypi.org">PyPI</a> module
6521.8Schristos<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
6531.8Schristossupplies TZif data if the underlying system data cannot be found;
6541.8Schristosit is freely available under the Apache License.</li>
6551.1Schristos<li>The
6561.1Schristospublic-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
6571.1Schristoslibrary contains a Python tool that
6581.2Schristosconverts <abbr>TZif</abbr> data into
6591.1Schristos<abbr>JSON</abbr>-format data suitable for use
6601.1Schristosin its JavaScript library for time zone conversion. Dates before 1970
6611.1Schristosare not supported.</li>
6621.1Schristos<li>The <a
6631.1Schristoshref="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
6641.1Schristospackage contains <a href="https://www.haskell.org">Haskell</a> code that
6651.2Schristosparses and uses <abbr>TZif</abbr> data. It is freely
6661.1Schristosavailable under a <abbr>BSD</abbr>-style license.</li>
6671.1Schristos</ul>
6681.6Schristos</section>
6691.6Schristos
6701.6Schristos<section>
6711.1Schristos<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
6721.1Schristos<ul>
6731.1Schristos<li><a href="https://foxclocks.org">FoxClocks</a>
6741.1Schristosis an extension for <a href="https://www.google.com/chrome/">Google
6751.16SchristosChrome</a>, <a
6761.1Schristoshref="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
6771.1Schristoshref="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
6781.1SchristosIt displays multiple clocks in the application window, and has a mapping
6791.1Schristosinterface to <a href="https://www.google.com/earth/">Google Earth</a>.
6801.1SchristosIt is freely available under the <abbr>GPL</abbr>.</li>
6811.1Schristos<li>Microsoft Windows 8.1
6821.1Schristosand later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
6831.3Schristosdata (mentioned <a href="#CLDR">below</a>) used by the
6841.3Schristos<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
6851.3Schristos<a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
6861.3Schristos<a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
6871.3Schristos<a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
6881.1Schristos<a id="System.TimeZoneInfo"
6891.1Schristoshref="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
6901.1SchristosWindows Time Zones with <code>System.TimeZoneInfo</code></a> describes
6911.1Schristosthe older, proprietary method of Microsoft Windows 2000 and later,
6921.1Schristoswhich stores time zone data in the
6931.1Schristos<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
6941.1Schristos<a
6951.20Schristoshref="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone
6961.20Schristos→ Tzid table</a> or <a
6971.6Schristoshref="https://github.com/unicode-org/cldr/blob/master/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
6981.1Schristosfile</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
6991.1Schristosto <code><abbr>tz</abbr></code> names.
7001.3SchristosThese mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
7011.3Schristosor the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
7021.1Schristos<li><a
7031.1Schristoshref="https://www.oracle.com/java/index.html">Oracle
7041.1SchristosJava</a> contains a copy of a subset of a recent
7051.1Schristos<code><abbr>tz</abbr></code> database in a
7061.1SchristosJava-specific format.</li>
7071.1Schristos</ul>
7081.6Schristos</section>
7091.6Schristos
7101.6Schristos<section>
7111.1Schristos<h2 id="other-dbs">Other time zone databases</h2>
7121.1Schristos<ul>
7131.1Schristos<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
7141.20Schristosis Astrodienst’s Web version of Shanks and Pottenger’s out-of-print
7151.4Schristostime zone history atlases
7161.4Schristos<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
7171.9Schristos<a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
7181.4SchristosAlthough these extensive atlases
7191.4Schristos<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
7201.4Schristossources for much of the older <code><abbr>tz</abbr></code> data</a>,
7211.4Schristosthey are unreliable as Shanks appears to have
7221.1Schristosguessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
7231.1Schristossources and do not indicate which entries are guesswork.</li>
7241.1Schristos<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
7251.1Schristosits own <code>tztab</code>(4) format.</li>
7261.1Schristos<li>Microsoft Windows has proprietary data mentioned
7271.1Schristos<a href="#System.TimeZoneInfo">above</a>.</li>
7281.1Schristos<li><a href="https://www.worldtimeserver.com">World Time Server</a>
7291.1Schristosis another time zone database.</li>
7301.1Schristos<li>The <a
7311.1Schristoshref="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
7321.1SchristosSchedules Information Manual</a> of the
7331.1SchristosInternational Air Transport Association
7341.1Schristosgives current time zone rules for airports served by commercial aviation.</li>
7351.1Schristos</ul>
7361.6Schristos</section>
7371.6Schristos
7381.6Schristos<section>
7391.1Schristos<h2 id="maps">Maps</h2>
7401.1Schristos<ul>
7411.9Schristos<li>The <a
7421.9Schristoshref="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
7431.9Schristosand Regional Maps section</a> of <em>The World Factbook</em>, published by the
7441.9Schristos<a href="https://www.cia.gov">US Central Intelligence
7451.9SchristosAgency (<abbr
7461.9Schristostitle="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
7471.9Schristoszone map; the
7481.1Schristos<a
7491.20Schristoshref="https://legacy.lib.utexas.edu/maps/world.html">Perry–Castañeda
7501.1SchristosLibrary Map Collection</a>
7511.1Schristosof the University of Texas at Austin has copies of
7521.1Schristosrecent editions.
7531.1SchristosThe pictorial quality is good,
7541.1Schristosbut the maps do not indicate daylight saving time,
7551.1Schristosand parts of the data are a few years out of date.</li>
7561.6Schristos<li><a href="https://www.worldtimezone.com">World Time Zone Map
7571.6Schristoswith current time</a>
7581.1Schristoshas several fancy time zone maps; it covers Russia particularly well.
7591.20SchristosThe maps’ pictorial quality is not quite as good as the <abbr>CIA</abbr>’s
7601.1Schristosbut the maps are more up to date.</li>
7611.1Schristos<li><a
7621.1Schristoshref="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
7631.1Schristosmuch is time wrong around the world?</a> maps the difference between
7641.1Schristosmean solar and standard time, highlighting areas such as western China
7651.20Schristoswhere the two differ greatly. It’s a bit out of date, unfortunately.</li>
7661.1Schristos</ul>
7671.6Schristos</section>
7681.6Schristos
7691.6Schristos<section>
7701.1Schristos<h2 id="boundaries">Time zone boundaries</h2>
7711.2Schristos<p>Geographical boundaries between timezones are available
7721.9Schristosfrom several <a
7731.9Schristoshref="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
7741.9Schristosgeolocation</a>
7751.1Schristosservices and other sources.</p>
7761.1Schristos<ul>
7771.1Schristos<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
7781.1SchristosBoundary Builder</a> extracts
7791.1Schristos<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
7801.2Schristosboundaries of <code><abbr>tzdb</abbr></code> timezones.
7811.1SchristosIts code is freely available under the <abbr>MIT</abbr> license, and
7821.1Schristosits data entries are freely available under the
7831.1Schristos<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
7841.16SchristosOpen Database License</a>. The borders appear to be quite accurate.
7851.16SchristosIts main web page lists more than twenty libraries
7861.16Schristosfor looking up a timezone name from a GPS coordinate.</li>
7871.1Schristos<li>Free access via a network API, if you register a key, is provided by
7881.4Schristosthe <a
7891.4Schristoshref="https://www.geonames.org/export/web-services.html#timezone">GeoNames
7901.4SchristosTimezone web service</a>, the <a
7911.4Schristoshref="https://developers.google.com/maps/documentation/timezone/intro">Google
7921.4SchristosMaps Time Zone API</a>, and
7931.8Schristosthe <a href="https://timezonedb.com/api">TimeZoneDB API</a>.
7941.1SchristosCommercial network API access is provided
7951.1Schristosby <a href="https://askgeo.com">AskGeo</a>
7961.1Schristosand <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
7971.1Schristos</li>
7981.20Schristos<li>“<a
7991.1Schristoshref="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
8001.1Schristosto get a time zone from a location using latitude and longitude
8011.20Schristoscoordinates?</a>” discusses other geolocation possibilities.</li>
8021.1Schristos<li><a href="http://statoids.com/statoids.html">Administrative
8031.20SchristosDivisions of Countries (“Statoids”)</a> lists
8041.1Schristospolitical subdivision data related to time zones.</li>
8051.13Schristos<li><a href="https://manifold.net/info/freestuff.shtml">Manifold Software
8061.20Schristos– GIS and Database Tools</a> includes a Manifold-format map of
8071.16Schristosworld time zone boundaries circa 2007, distributed under the
8081.1Schristos<abbr>GPL</abbr>.</li>
8091.1Schristos<li>A ship within the <a
8101.1Schristoshref="https://en.wikipedia.org/wiki/Territorial_waters">territorial
8111.20Schristoswaters</a> of any nation uses that nation’s time. In international
8121.20Schristoswaters, time zone boundaries are meridians 15° apart, except that
8131.20Schristos<abbr>UT</abbr>−12 and <abbr>UT</abbr>+12 are each 7.5°
8141.1Schristoswide and are separated by
8151.20Schristosthe 180° meridian (not by the International Date Line, which is
8161.20Schristosfor land and territorial waters only). A captain can change ship’s
8171.1Schristosclocks any time after entering a new time zone; midnight changes are
8181.1Schristoscommon.</li>
8191.1Schristos</ul>
8201.6Schristos</section>
8211.6Schristos
8221.6Schristos<section>
8231.1Schristos<h2 id="civil">Civil time concepts and history</h2>
8241.1Schristos<ul>
8251.1Schristos<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
8261.1SchristosWalk through Time</a>
8271.1Schristossurveys the evolution of timekeeping.</li>
8281.4Schristos<li>The history of daylight saving time is surveyed in <a
8291.4Schristoshref="http://www.webexhibits.org/daylightsaving/">About Daylight
8301.20SchristosSaving Time – History, rationale, laws &amp; dates</a> and summarized in
8311.4Schristos<a href="http://seizethedaylight.com/dst/">A Brief
8321.4SchristosHistory of Daylight Saving Time</a>.</li>
8331.4Schristos<li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
8341.4SchristosLords</a> discusses how authoritarians manipulate civil time.</li>
8351.20Schristos<li><a href="https://www.w3.org/TR/timezone/">Working with Time
8361.20Schristosand Time Zones</a>
8371.1Schristoscontains guidelines and best practices for software applications that
8381.1Schristosdeal with civil time.</li>
8391.16Schristos<li><a href="https://webspace.science.uu.nl/~gent0113/idl/idl.htm">A History of
8401.1Schristosthe International Date Line</a> tells the story of the most important
8411.1Schristostime zone boundary.</li>
8421.1Schristos<li><a href="http://statoids.com/tconcept.html">Basic Time
8431.1SchristosZone Concepts</a> discusses terminological issues behind time zones.</li>
8441.1Schristos</ul>
8451.6Schristos</section>
8461.6Schristos
8471.6Schristos<section>
8481.1Schristos<h2 id="national">National histories of legal time</h2>
8491.1Schristos<dl>
8501.1Schristos<dt>Australia</dt>
8511.20Schristos<dd>The Bureau of Meteorology publishes a list of <a
8521.1Schristoshref="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
8531.1SchristosDates of Daylight Savings Time within Australia</a>.</dd>
8541.1Schristos<dt>Belgium</dt>
8551.7Schristos<dd>The Royal Observatory of Belgium maintains a table of time in
8561.7SchristosBelgium (in
8571.16Schristos<a href="https://robinfo.oma.be/nl/astro-info/tijd/"
8581.7Schristoshreflang="nl">Dutch</a> and <a
8591.16Schristoshref="https://robinfo.oma.be/fr/astro-info/heure/"
8601.7Schristoshreflang="fr">French</a>).</dd>
8611.1Schristos<dt>Brazil</dt>
8621.1Schristos<dd>The Time Service Department of the National Observatory
8631.1Schristosrecords <a href="http://pcdsh01.on.br/DecHV.html"
8641.20Schristoshreflang="pt-BR">Brazil’s daylight saving time decrees (in
8651.1SchristosPortuguese)</a>.</dd>
8661.1Schristos<dt>Canada</dt>
8671.1Schristos<dd>National Research Council Canada publishes current
8681.1Schristosand some older information about <a
8691.6Schristoshref="https://nrc.canada.ca/en/certifications-evaluations-standards/canadas-official-time/time-zones-daylight-saving-time">time
8701.6Schristoszones and daylight saving time</a>.</dd>
8711.1Schristos<dt>Chile</dt>
8721.1Schristos<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
8731.11Schristos<a href="https://www.horaoficial.cl/historia_hora.php" hreflang="es">history of
8741.20SchristosChile’s official time (in Spanish)</a>.</dd>
8751.3Schristos<dt>China</dt>
8761.3Schristos<dd>The Hong Kong Observatory maintains a
8771.7Schristos<a href="https://www.hko.gov.hk/en/gts/time/Summertime.htm">history of
8781.3Schristos summer time in Hong Kong</a>,
8791.20Schristosand Macau’s Meteorological and Geophysical Bureau maintains a <a
8801.7Schristoshref="https://www.smg.gov.mo/en/subpage/224/page/174">similar
8811.3Schristoshistory for Macau</a>.
8821.3SchristosUnfortunately the latter is incomplete and has errors.</dd>
8831.1Schristos<dt>Czech Republic</dt>
8841.1Schristos<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
8851.1Schristoshreflang="cs">When daylight saving time starts and ends (in Czech)</a>
8861.10Schristossummarizes and cites historical <abbr>DST</abbr> regulations.</dd>
8871.1Schristos<dt>Germany</dt>
8881.1Schristos<dd>The National Institute for Science and Technology maintains the <a
8891.1Schristoshref="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
8901.1Schristosof Legal Time in Germany</a>.</dd>
8911.1Schristos<dt>Israel</dt>
8921.17Schristos<dd><a
8931.17Schristoshref="https://tz.cs.huji.ac.il">Israel Timezone Files</a>
8941.17Schristoslists official time-change announcements and laws since 1940,
8951.17Schristosalmost all in Hebrew.</dd>
8961.2Schristos<dt>Malaysia</dt>
8971.2Schristos<dd>See Singapore <a href="#Singapore">below</a>.</dd>
8981.1Schristos<dt>Mexico</dt>
8991.1Schristos<dd>The Investigation and Analysis Service of the Mexican Library of
9001.1SchristosCongress has published a <a
9011.13Schristoshref="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
9021.1Schristoshreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
9031.1Schristos<dt>Netherlands</dt>
9041.16Schristos<dd><a href="https://webspace.science.uu.nl/~gent0113/wettijd/wettijd.htm"
9051.1Schristoshreflang="nl">Legal time in the Netherlands (in Dutch)</a>
9061.1Schristoscovers the history of local time in the Netherlands from ancient times.</dd>
9071.1Schristos<dt>New Zealand</dt>
9081.1Schristos<dd>The Department of Internal Affairs maintains a brief <a
9091.1Schristoshref="https://www.dia.govt.nz/Daylight-Saving-History">History of
9101.6SchristosDaylight Saving</a>.</dd>
9111.14Schristos<dt>Palestine</dt>
9121.20Schristos<dd>The Ministry of Telecom and Digital Economy publishes a <a
9131.20Schristoshref="https://mtde.gov.ps/home/TimeZone"
9141.14Schristoshreflang="ar">history of clock changes (in Arabic)</a>.</dd>
9151.10Schristos<dt>Portugal</dt>
9161.10Schristos<dd>The Lisbon Astronomical Observatory publishes a
9171.10Schristos<a href="https://oal.ul.pt/hora-legal/" hreflang="pt">history of
9181.10Schristoslegal time (in Portuguese)</a>.</dd>
9191.1Schristos<dt>Singapore</dt>
9201.1Schristos<dd><a id="Singapore"
9211.7Schristoshref="https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html">Why
9221.20Schristosis Singapore in the “Wrong” Time Zone?</a> details the
9231.1Schristoshistory of legal time in Singapore and Malaysia.</dd>
9241.1Schristos<dt>United Kingdom</dt>
9251.1Schristos<dd><a
9261.1Schristoshref="https://www.polyomino.org.uk/british-time/">History of
9271.1Schristoslegal time in Britain</a> discusses in detail the country
9281.6Schristoswith perhaps the best-documented history of clock adjustments.</dd>
9291.1Schristos<dt>United States</dt>
9301.20Schristos<dd>The Department of Transportation’s <a
9311.1Schristoshref="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
9321.18SchristosTime Zone Proceedings</a> lists changes to
9331.18Schristosofficial written time zone boundaries, and its <a
9341.18Schristoshref="https://geodata.bts.gov/datasets/usdot::time-zones/about">Time
9351.18SchristosZones dataset</a> maps current boundaries.
9361.18SchristosThese boundaries are only for standard time, so the current map puts
9371.18Schristosall of Arizona in one time zone even though part of Arizona
9381.18Schristosobserves <abbr>DST</abbr> and part does not.</dd>
9391.1Schristos<dt>Uruguay</dt>
9401.1Schristos<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
9411.1SchristosNavy (SOHMA) publishes an annual <a
9421.13Schristoshref="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac
9431.1Schristos(in Spanish)</a>.</dd>
9441.1Schristos</dl>
9451.6Schristos</section>
9461.6Schristos
9471.6Schristos<section>
9481.7Schristos<h2 id="costs">Costs and benefits of time shifts</h2>
9491.7Schristos<p>Various sources argue for and against daylight saving time and time
9501.7Schristoszone shifts, and many scientific studies have been conducted. This
9511.8Schristossection summarizes reviews and position statements based on
9521.8Schristosscientific literature in the area.</p>
9531.7Schristos<ul>
9541.7Schristos<li>Carey RN, Sarma KM.
9551.7Schristos<a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of
9561.7Schristosdaylight saving time on road traffic collision risk: a systematic
9571.7Schristosreview</a>.
9581.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>.
9591.7SchristosThis reviews research literature and concludes that the evidence
9601.7Schristosneither supports nor refutes road safety benefits from
9611.7Schristosshifts in time zones.</li>
9621.7Schristos<li>Havranek T, Herman D, Irsova D.
9631.20SchristosDoes daylight saving save electricity? A meta-analysis.
9641.20Schristos<em>Energy J.</em> 2018;39(2):35–61.
9651.7Schristosdoi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.thav</a>.
9661.20SchristosThis analyzes research literature and concludes, “Electricity savings
9671.7Schristosare larger for countries farther away from the equator, while
9681.20Schristossubtropical regions consume more electricity because of <abbr>DST</abbr>.”</li>
9691.20Schristos<li>Neumann P, von Blanckenburg K. <a
9701.20Schristoshref="https://journals.sagepub.com/doi/full/10.1177/0961463X241310562">What
9711.20Schristostime will it be? A comprehensive literature review on daylight saving time</a>.
9721.20Schristos<em>Time Soc</em>. 2025-01-21.
9731.20Schristosdoi:<a href="https://doi.org/10.1177/0961463X241310562">10.1177/0961463X241310562</a>.
9741.20SchristosThis reviews DST’s effects on electricity, health, crime, road safety,
9751.20Schristosand the economy, focusing on research since 2010, and concludes that
9761.20Schristosyear-round standard time is preferable overall.
9771.20Schristos</ul>
9781.20Schristos
9791.20Schristos<p>The following medical societies have taken positions on the
9801.20Schristosadvisability of clock shifts:</p>
9811.20Schristos
9821.20Schristos<ul>
9831.20Schristos<li>In 2022 the American Medical Association issued a
9841.20Schristos<a href="https://www.ama-assn.org/press-center/press-releases/ama-calls-permanent-standard-time">statement
9851.20Schristossupporting permanent standard time</a> on health grounds.</li>
9861.20Schristos<li>Crawford MR, Winnebeck EC, von Schantz M <em>et al</em>.
9871.20Schristos<a href="https://onlinelibrary.wiley.com/doi/10.1111/jsr.14352">The
9881.20SchristosBritish Sleep Society position statement on Daylight Saving Time in the UK</a>.
9891.20Schristos<em>J Sleep Res.</em> 2025;34(3):e14352.
9901.20Schristosdoi:<a href="https://doi.org/10.1111/jsr.14352">10.1111/jsr.14352</a>.
9911.20SchristosThis recommends that the UK abolish DST for health reasons.</li>
9921.16Schristos<li>Malow BA. <a
9931.16Schristoshref="https://academic.oup.com/sleep/article/45/12/zsac236/6717940">It is time
9941.16Schristosto abolish the clock change and adopt permanent
9951.16Schristosstandard time in the United States:
9961.16Schristosa Sleep Research Society position statement</a>.
9971.15Schristos<em>Sleep.</em> 2022;45(12):zsac236.
9981.15Schristosdoi:<a href="https://doi.org/10.1093/sleep/zsac236">10.1093/sleep/zsac236</a>.
9991.15SchristosAfter reviewing the scientific literature, the Sleep Research Society
10001.20Schristosadvocates permanent standard time due to its health benefits.</li>
10011.15Schristos<li>Rishi MA, Cheng JY, Strang AR <em>et al</em>.
10021.15Schristos<a href="https://jcsm.aasm.org/doi/10.5664/jcsm.10898">Permanent standard time
10031.15Schristosis the optimal choice for health and safety:
10041.8Schristosan American Academy of Sleep Medicine position statement</a>.
10051.20Schristos<em>J Clin Sleep Med.</em> 2024;20(1):121–125.
10061.15Schristosdoi:<a href="https://doi.org/10.5664/jcsm.10898">10.5664/jcsm.10898</a>.
10071.15SchristosThe AASM argues for permanent standard time due to health and safety risks
10081.15Schristosand economic costs of both <abbr>DST</abbr> transitions and
10091.15Schristospermanent <abbr>DST</abbr>.</li>
10101.13Schristos<li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
10111.16Schristos<a href="https://journals.sagepub.com/doi/10.1177/0748730419854197">Why
10121.13Schristosshould we abolish Daylight Saving Time?</a>
10131.20Schristos<em>J Biol Rhythms.</em> 2019;34(3):227–230.
10141.13Schristosdoi:<a href="https://doi.org/10.1177/0748730419854197">10.1177/0748730419854197</a>.
10151.15SchristosThe Society for Research on Biological Rhythms
10161.18Schristosopposes <abbr>DST</abbr> changes and permanent <abbr>DST</abbr>,
10171.18Schristosand advocates that governments adopt
10181.20Schristos“permanent Standard Time for the health and safety of their citizens”.</li>
10191.7Schristos</ul>
10201.7Schristos</section>
10211.7Schristos
10221.7Schristos<section>
10231.1Schristos<h2 id="precision">Precision timekeeping</h2>
10241.1Schristos<ul>
10251.1Schristos<li><a
10261.1Schristoshref="http://leapsecond.com/hpan/an1289.pdf">The
10271.1SchristosScience of Timekeeping</a> is a thorough introduction
10281.1Schristosto the theory and practice of precision timekeeping.</li>
10291.1Schristos<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
10301.14SchristosTime 2016</a> contains several freely readable papers.</li>
10311.13Schristos<li><a href="https://www.ntp.org"><abbr
10321.1Schristostitle="Network Time Protocol">NTP</abbr>: The Network
10331.1SchristosTime Protocol</a> (Internet <abbr>RFC</abbr> 5905)
10341.1Schristosdiscusses how to synchronize clocks of
10351.1SchristosInternet hosts.</li>
10361.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>
10371.2Schristosfamily of software algorithms can achieve accuracy to a few tens of
10381.2Schristosnanoseconds in scalable server farms without special hardware.</li>
10391.1Schristos<li>The <a
10401.1Schristoshref="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
10411.1SchristosTime Protocol</a> (<abbr
10421.1Schristostitle="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
10431.2Schristoscan achieve submicrosecond clock accuracy on a local area network
10441.2Schristoswith special-purpose hardware.</li>
10451.1Schristos<li><a
10461.18Schristoshref="https://www.rfc-editor.org/rfc/rfc4833">Timezone
10471.1SchristosOptions for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
10481.1Schristos(Internet <abbr>RFC</abbr> 4833)
10491.1Schristosspecifies a <a
10501.1Schristoshref="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
10511.1Schristosoption for a server to configure
10521.20Schristosa client’s time zone and daylight saving settings automatically.</li>
10531.11Schristos<li><a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
10541.11SchristosScales</a> describes astronomical time scales like
10551.1Schristos<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
10561.1Schristos<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
10571.1Schristos<abbr title="Barycentric Dynamic Time">TDB</abbr>.
10581.1Schristos<li>The <a href="https://www.iau.org"><abbr
10591.20Schristostitle="International Astronomical Union">IAU</abbr></a>’s <a
10601.13Schristoshref="https://www.iausofa.org"><abbr
10611.1Schristostitle="Standards Of Fundamental Astronomy">SOFA</abbr></a>
10621.1Schristoscollection contains C and <a
10631.1Schristoshref="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
10641.1Schristoscode for converting among time scales like
10651.1Schristos<abbr title="International Atomic Time">TAI</abbr>,
10661.1Schristos<abbr>TDB</abbr>, <abbr>TDT</abbr> and
10671.13Schristos<abbr>UTC</abbr>. It is freely available under the
10681.13Schristos<a href="https://www.iausofa.org/tandc.html">SOFA license</a>.</li>
10691.1Schristos<li><a
10701.1Schristoshref="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
10711.20Schristos– Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
10721.1Schristosdiverse local time
10731.1Schristosscales used by each landed mission on Mars.</li>
10741.1Schristos<li><a href="http://leapsecond.com">LeapSecond.com</a> is
10751.1Schristosdedicated not only to leap seconds but to precise time and frequency
10761.1Schristosin general. It covers the state of the art in amateur timekeeping, and
10771.1Schristoshow the art has progressed over the past few decades.</li>
10781.7Schristos<li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
10791.7Schristoshref="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
10801.20Schristosand time-signal emissions</a>, International Telecommunication Union –
10811.7SchristosRadiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
10821.1Schristos<li><a
10831.1Schristoshref="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
10841.1Schristostitle="International Earth Rotation and Reference Systems Service">IERS</abbr>
10851.1SchristosBulletins</a> contains official publications of the International
10861.1SchristosEarth Rotation and Reference Systems Service, which decides when leap
10871.20Schristosseconds occur.
10881.20SchristosThe <code><abbr>tz</abbr></code> code and data support leap seconds
10891.20Schristosvia an optional <code>"right"</code> configuration where a computer’s internal
10901.9Schristos<code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
10911.20Schristosas opposed to the default <code>"posix"</code> configuration
10921.9Schristoswhere the internal clock ignores leap seconds.
10931.9SchristosThe two configurations agree for timestamps starting with 1972-01-01 00:00:00
10941.9Schristos<abbr>UTC</abbr> (<code>time_t</code> 63&thinsp;072&thinsp;000) and diverge for
10951.9Schristostimestamps starting with <code>time_t</code> 78&thinsp;796&thinsp;800,
10961.9Schristoswhich corresponds to the first leap second
10971.20Schristos1972-06-30 23:59:60 <abbr>UTC</abbr> in the <code>"right"</code> configuration,
10981.9Schristosand to
10991.20Schristos1972-07-01 00:00:00 <abbr>UTC</abbr> in the <code>"posix"</code> configuration.
11001.9SchristosIn practice the two configurations also agree for timestamps before
11011.9Schristos1972 even though the historical situation is messy, partly because
11021.9Schristosneither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
11031.14Schristosis well-defined for sufficiently old timestamps.</li>
11041.17Schristos<li><a href="https://kb.meinbergglobal.com/kb/time_sync/ntp/configuration/ntp_leap_second_file">The
11051.17Schristos<abbr>NTP</abbr> Leap Second File</a> covers the text file
11061.17Schristos<code>leap-seconds.list</code>, which lists the currently known leap seconds.
11071.17SchristosThe <abbr>IERS</abbr> maintains this file, and a copy is distributed by
11081.17Schristos<code><abbr>tzdb</abbr></code> for use by <abbr>NTP</abbr> implementations like
11091.17Schristos<a href="https://www.ntp.org">classic
11101.17Schristos<code><abbr title="Network Time Protocol Daemon">ntpd</abbr></code></a>
11111.17Schristosand <a href="https://ntpsec.org">NTPsec</a>.
11121.17SchristosThe <code><abbr>tz</abbr></code> database also distributes leap second
11131.17Schristosinformation in a differently-formatted <code>leapseconds</code> text file,
11141.20Schristosas well as in the <code>"right"</code> configuration in binary form; for
11151.17Schristosexample, <code>right/UTC</code> can be used
11161.17Schristosby <a href="https://chrony-project.org"><code>chrony</code></a>,
11171.17Schristosanother <abbr>NTP</abbr> implementation.</li>
11181.1Schristos<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
11191.1Schristosdiscusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
11201.1Schristosleap second so that they disagree with <abbr>UTC</abbr> by at most a
11211.1Schristoshalf second, even though every <abbr>POSIX</abbr> minute has exactly
11221.4Schristossixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
11231.20Schristos<code>"posix"</code> configuration, is <a
11241.1Schristoshref="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
11251.17Schristosthe abovementioned <abbr>NTP</abbr> implementations, <a
11261.12Schristoshref="https://github.com/google/unsmear">supports</a> conversion between
11271.12Schristos<abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
11281.7Schristoscloud service providers. However, according to
11291.20Schristos<a href="https://www.rfc-editor.org/rfc/rfc8633#section-3.7.1">§3.7.1 of
11301.7SchristosNetwork Time Protocol Best Current Practices</a>
11311.7Schristos(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
11321.9Schristosapplications requiring accurate <abbr>UTC</abbr> or civil time,
11331.7Schristosand is intended for use only in single, well-controlled environments.</li>
11341.1Schristos<li>The <a
11351.1Schristoshref="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
11361.1SchristosSecond Discussion List</a> covers <a
11371.1Schristoshref="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
11381.20Schristosand Klepczynski’s 1999 proposal to discontinue leap seconds</a>,
11391.1Schristosdiscussed further in
11401.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
11411.1Schristosleap second: its history and possible future</a>.
11421.1Schristos<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
11431.1Schristosmight be redefined
11441.1Schristoswithout Leap Seconds</a> gives pointers on this
11451.14Schristoscontentious issue.
11461.14SchristosThe General Conference on Weights and Measures
11471.16Schristos<a href="https://www.bipm.org/en/cgpm-2022/resolution-4">decided in 2022</a>
11481.17Schristosto discontinue the use of leap seconds by 2035, and requested that no
11491.17Schristosdiscontinuous adjustments be made to UTC for at least a century.
11501.16SchristosThe World Radiocommunication Conference <a
11511.16Schristoshref="https://www.itu.int/dms_pub/itu-r/opb/act/R-ACT-WRC.15-2023-PDF-E.pdf">resolved
11521.20Schristosin 2023</a> to cooperate with this process. One proposal to implement this
11531.20Schristoswould replace leap seconds with seven 13-second leap smears occurring once per
11541.17Schristosdecade until 2100, with leap smears after that gradually increasing in size.
11551.20SchristosSee:
11561.20Schristos<ul>
11571.20Schristos<li>Levine J. <a href="https://www.preprints.org/manuscript/202406.0043/v1">A
11581.20Schristosproposal to change the leap-second adjustments to
11591.20Schristoscoordinated universal time</a>. <em>Metrologia.</em> 2024;61(5):055002. doi:<a
11601.20Schristoshref="https://doi.org/10.1088/1681-7575/ad6266">10.1088/1681-7575/ad6266</a>.</li>
11611.20Schristos</ul>
11621.17SchristosHowever, there is still no consensus on whether this is the best way
11631.17Schristosto replace leap seconds.
11641.14Schristos</li>
11651.1Schristos</ul>
11661.6Schristos</section>
11671.6Schristos
11681.6Schristos<section>
11691.1Schristos<h2 id="notation">Time notation</h2>
11701.1Schristos<ul>
11711.13Schristos<li>The <a id="CLDR" href="https://cldr.unicode.org">Unicode Common Locale Data
11721.1SchristosRepository (<abbr>CLDR</abbr>) Project</a> has localizations for time
11731.1Schristoszone names, abbreviations, identifiers, and formats. For example, it
11741.20Schristoscontains French translations for “Eastern European Summer Time”,
11751.20Schristos“<abbr title="Eastern European Summer Time">EEST</abbr>”, and “Bucharest”. Its
11761.1Schristos<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
11771.1Schristoscharts</a> show these values for many locales. Data values are available in
11781.1Schristosboth <abbr title="Locale Data Markup Language">LDML</abbr>
11791.1Schristos(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
11801.1Schristos<li>
11811.1Schristos<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
11821.6Schristosthe international standard date and time notation</a> covers
11831.1Schristos<a
11841.6Schristoshref="https://www.iso.org/standard/70907.html"><em><abbr
11851.6Schristostitle="International Organization for Standardization">ISO</abbr>
11861.20Schristos8601-1:2019 – Date and time – Representations for information
11871.20Schristosinterchange – Part 1: Basic rules</em></a>.</li>
11881.1Schristos<li>
11891.6Schristos<a href="https://www.w3.org/TR/xmlschema/#dateTime"><abbr>XML</abbr>
11901.20SchristosSchema: Datatypes – dateTime</a> specifies a format inspired by
11911.1Schristos<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
11921.20Schristos<li><a href="https://www.rfc-editor.org/rfc/rfc5322#section-3.3">§3.3 of
11931.1SchristosInternet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
11941.1Schristosspecifies the time notation used in email and <a
11951.1Schristoshref="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
11961.1Schristosheaders.</li>
11971.1Schristos<li>
11981.18Schristos<a href="https://www.rfc-editor.org/rfc/rfc3339">Date and Time
11991.1Schristoson the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
12001.17Schristosspecifies an <abbr>ISO</abbr> 8601 profile for use in new Internet protocols.
12011.18SchristosAn extension, <a href="https://www.rfc-editor.org/rfc/rfc9557">Date
12021.17Schristosand Time on the Internet: Timestamps with Additional Information</a>
12031.17Schristos(Internet <abbr>RFC</abbr> 9557) extends this profile
12041.17Schristosto let you specify the <code><abbr>tzdb</abbr></code> timezone of a timestamp
12051.20Schristosvia suffixes like <code>[Asia/Tokyo]</code>.
12061.1Schristos<li>
12071.7Schristos<a href="https://web.archive.org/web/20190130042457/https://www.hackcraft.net/web/datetime/">Date &amp; Time
12081.1SchristosFormats on the Web</a> surveys web- and Internet-oriented date and time
12091.1Schristosformats.</li>
12101.1Schristos<li>Alphabetic time zone abbreviations should not be used as unique
12111.1Schristosidentifiers for <abbr>UT</abbr> offsets as they are ambiguous in
12121.1Schristospractice. For example, in English-speaking North America
12131.20Schristos“<abbr>CST</abbr>” denotes 6 hours behind <abbr>UT</abbr>,
12141.1Schristosbut in China it denotes 8 hours ahead of <abbr>UT</abbr>,
12151.1Schristosand French-speaking North Americans prefer
12161.20Schristos“<abbr title="Heure Normale du Centre">HNC</abbr>” to
12171.20Schristos“<abbr>CST</abbr>”. The <code><abbr>tz</abbr></code>
12181.2Schristosdatabase contains English abbreviations for many timestamps;
12191.20Schristosunfortunately some of these abbreviations were merely the database maintainers’
12201.1Schristosinventions, and these have been removed when possible.</li>
12211.1Schristos<li>Numeric time zone abbreviations typically count hours east of
12221.1Schristos<abbr>UT</abbr>, e.g., +09 for Japan and
12231.20Schristos−10 for Hawaii. However, <abbr>POSIX</abbr> proleptic
12241.17Schristos<code><abbr>TZ</abbr></code> settings use the opposite convention.
12251.1SchristosFor example, one might use <code><abbr>TZ</abbr>="<abbr
12261.1Schristostitle="Japan Standard Time">JST</abbr>-9"</code> and
12271.1Schristos<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
12281.1Schristosfor Japan and Hawaii, respectively. If the
12291.1Schristos<code><abbr>tz</abbr></code> database is available, it is usually better to use
12301.1Schristossettings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
12311.1Schristos<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
12321.2Schristosconfusion, handle old timestamps better, and insulate you better from
12331.1Schristosany future changes to the rules. One should never set
12341.1Schristos<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
12351.1Schristos<code>"GMT-9"</code>, though, since this would incorrectly imply that
12361.1Schristoslocal time is nine hours ahead of <abbr>UT</abbr> and the time zone
12371.20Schristosis called “<abbr>GMT</abbr>”.</li>
12381.1Schristos</ul>
12391.6Schristos</section>
12401.6Schristos
12411.6Schristos<section>
12421.1Schristos<h2 id="see-also">See also</h2>
12431.1Schristos<ul>
12441.7Schristos<li><a href="theory.html">Theory and pragmatics of the
12451.7Schristos<code><abbr>tz</abbr></code> code and data</a></li>
12461.1Schristos<li><a href="tz-art.html">Time and the Arts</a></li>
12471.1Schristos</ul>
12481.6Schristos</section>
12491.6Schristos
12501.6Schristos<footer>
12511.1Schristos<hr>
12521.1SchristosThis web page is in the public domain, so clarified as of
12531.1Schristos2009-05-17 by Arthur David Olson.
12541.1Schristos<br>
12551.1SchristosPlease send corrections to this web page to the
12561.1Schristos<a href="mailto:tz@iana.org">time zone mailing list</a>.
12571.20SchristosThe mailing list and its archives are public,
12581.20Schristosso please do not send confidential information.
12591.6Schristos</footer>
12601.1Schristos</body>
12611.1Schristos</html>
1262