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