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