1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<title>Sources for time zone and daylight saving time data</title> 5<meta charset="UTF-8"> 6</head> 7<body> 8<h1>Sources for time zone and daylight saving time data</h1> 9<p> 10<a href="https://en.wikipedia.org/wiki/Time_zone">Time zone</a> and 11<a href="https://en.wikipedia.org/wiki/Daylight_saving_time">daylight-saving</a> 12rules are controlled by individual 13governments. They are sometimes changed with little notice, and their 14histories and planned futures are often recorded only fitfully. Here 15is a summary of attempts to organize and record relevant data in this 16area. 17</p> 18<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2> 19<p> 20The <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a> 21time zone database contains code and data 22that represent the history of local time 23for many representative locations around the globe. 24It is updated periodically to reflect changes made by political bodies 25to time zone boundaries and daylight saving rules. 26This database (known as <code><abbr>tz</abbr></code>, 27<code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>) 28is used by several implementations, 29including 30<a href="https://www.gnu.org/software/libc/">the 31<abbr title="GNU's Not Unix">GNU</abbr> 32C Library</a> (used in 33<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>), 34<a href="https://www.android.com">Android</a>, 35<a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS">B2G 36<abbr title="Operating System">OS</abbr></a>, 37<a href="https://www.freebsd.org">Free<abbr 38title="Berkeley Software Distribution">BSD</abbr></a>, 39<a href="https://netbsd.org">Net<abbr>BSD</abbr></a>, 40<a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>, 41<a href="https://www.chromium.org/chromium-os">Chromium OS</a>, 42<a href="https://cygwin.com">Cygwin</a>, 43<a href="http://www.delorie.com/djgpp/"><abbr 44title="DJ's GNU Programming Platform">DJGPP</abbr></a>, 45<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>, 46<a href="https://www.mysql.com">MySQL</a>, 47<a href="https://en.wikipedia.org/wiki/WebOS"><abbr 48title="Web Operating System">webOS</abbr></a>, 49<a href="https://ibm.com/aix"><abbr 50title="Advanced Interactive eXecutive">AIX</abbr></a>, 51<a href="https://en.wikipedia.org/wiki/BlackBerry_10">BlackBerry 10</a>, 52<a href="https://www.apple.com/ios/"><abbr 53title="iPhone OS">iOS</abbr></a>, 54<a href="https://www.apple.com/macos/">macOS</a>, 55<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>, 56<a href="https://www.hpe.com/info/openvms">Open<abbr 57title="Virtual Memory System">VMS</abbr></a>, 58<a href="https://www.oracle.com/database/index.html">Oracle Database</a>, and 59<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p> 60<p> 61Each location in the database represents a region where all 62clocks keeping local time have agreed since 1970. 63Locations are identified by continent or ocean and then by the name of 64the location, which is typically the largest city within the region. 65For example, <code>America/New_York</code> 66represents most of the <abbr title="United States">US</abbr> eastern time zone; 67<code>America/Phoenix</code> represents most of Arizona, which 68uses mountain time without daylight saving time (<abbr 69title="daylight saving time">DST</abbr>); 70<code>America/Detroit</code> represents most of Michigan, which uses 71eastern time but with different <abbr>DST</abbr> rules in 1975; 72and other entries represent smaller regions like Starke County, 73Indiana, which switched from central to eastern time in 1991 74and switched back in 2006. 75To use the database on an extended <a 76href="https://en.wikipedia.org/wiki/POSIX"><abbr 77title="Portable Operating System Interface">POSIX</abbr></a> 78implementation set the <code><abbr>TZ</abbr></code> 79environment variable to the location's full name, 80e.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p> 81<p> 82Associated with each region is a history of offsets from 83<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal 84Time</a> (<abbr>UT</abbr>), which is <a 85href="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean 86Time</a> (<abbr>GMT</abbr>) with days beginning at midnight; 87for time stamps after 1960 this is more precisely <a 88href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated 89Universal Time</a> (<abbr>UTC</abbr>). 90The database also records when daylight saving time was in use, 91along with some time zone abbreviations such as <abbr>EST</abbr> 92for Eastern Standard Time in the <abbr>US</abbr>.</p> 93<h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2> 94<p> 95The following <a 96href="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download 97the latest release's two 98<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a> 99to a <abbr>GNU</abbr>/Linux or similar host.</p> 100<pre style="margin-left: 2em"><code>mkdir tzdb 101cd tzdb 102<a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz 103wget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz 104<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 - 105gzip -dc tzdata-latest.tar.gz | tar -xf - 106</code></pre> 107<p>Alternatively, the following shell commands download the same 108release in a single-tarball format containing extra data 109useful for regression testing:</p> 110<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> 111<a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf - 112</code></pre> 113<p>These commands use convenience links to the latest release 114of the <code><abbr>tz</abbr></code> database hosted by the 115<a href="https://www.iana.org/time-zones">Time Zone Database website</a> 116of the <a href="https://www.iana.org">Internet Assigned Numbers 117Authority (IANA)</a>. 118Older releases are in files named 119<code>tzcode<var>V</var>.tar.gz</code>, 120<code>tzdata<var>V</var>.tar.gz</code>, and 121<code>tzdb-<var>V</var>.tar.lz</code>, 122where <code><var>V</var></code> is the version. 123Since 1996, each version has been a four-digit year followed by 124lower-case letter (<samp>a</samp> through <samp>z</samp>, 125then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp> 126through <samp>zzz</samp>, and so on). 127Since version 2016h, each release has contained a text file named 128"<samp>version</samp>" whose first (and currently only) line is the version. 129The releases are also available in an 130<a href="ftp://ftp.iana.org/tz/releases/"><abbr 131title="File Transfer Protocol">FTP</abbr> directory</a> via a 132less-secure protocol.</p> 133<p>Alternatively, a development repository of code and data can be 134retrieved from <a href="https://github.com">GitHub</a> via the shell 135command:</p> 136<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> 137</code></pre> 138<p> 139Since version 2012e, each release has been tagged in development repositories. 140Untagged commits are less well tested and probably contain 141more errors.</p> 142<p> 143After obtaining the code and data files, see the 144<code>README</code> file for what to do next. 145The code lets you compile the <code><abbr>tz</abbr></code> source files into 146machine-readable binary files, one for each location. It also lets 147you read a <code><abbr>tz</abbr></code> binary file and interpret time stamps for that 148location.</p> 149<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2> 150<p> 151The <code><abbr>tz</abbr></code> code and data 152are by no means authoritative. If you find errors, please 153send changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>, 154the time zone mailing list. You can also <a 155href="https://mm.icann.org/mailman/listinfo/tz">subscribe</a> to it 156and browse the <a 157href="https://mm.icann.org/pipermail/tz/">archive of old 158messages</a>.</p> 159<p> 160If your government plans to change its time zone boundaries or 161daylight saving rules, inform <code>tz@iana.org</code> well in 162advance, as this will coordinate updates to many cell phones, 163computers, and other devices around the world. With 164less than a year's notice there is a good chance that some 165computer-based clocks will operate incorrectly after the change, due 166to delays in propagating updates to software and data. The shorter 167the notice, the more likely clock problems will arise; see "<a 168href="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On 169the Timing of Time Zone Changes</a>" for examples. 170</p> 171<p> 172Changes to the <code><abbr>tz</abbr></code> code and data are often 173propagated to clients via operating system updates, so 174client <code><abbr>tz</abbr></code> data can often be corrected by 175applying these updates. With GNU/Linux and similar systems, if your 176maintenance provider has not yet adopted the 177latest <code><abbr>tz</abbr></code> data, you can often short-circuit 178the process by tailoring the generic instructions in 179the <code><abbr>tz</abbr> README</code> file and installing the latest 180data yourself. System-specific instructions for installing the 181latest <code><abbr>tz</abbr></code> data have also been published 182for <a href="https://www.ibm.com/developerworks/aix/library/au-aix-olson-time-zone/index.html"><abbr>AIX</abbr></a>, 183<a 184href="https://play.google.com/store/apps/details?id=com.google.android.timezone.data">Android</a>, 185<a 186href="http://userguide.icu-project.org/datetime/timezone"><abbr 187title="International Components for Unicode">ICU</abbr></a>, 188<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr></a> 189and <a 190href="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a> 191Java, <a href="http://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a 192href="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>, 193and <a 194href="https://nodatime.org/userguide/tzdb">Noda Time</a> (see below). 195</p> 196<p>Sources for the <code><abbr>tz</abbr></code> database are 197<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr 198title="Unicode Transformation Format 8-bit">UTF-8</abbr></a> 199<a href="https://en.wikipedia.org/wiki/Text_file">text files</a> 200with lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr 201title="linefeed">LF</abbr></a>, 202which can be modified by common text editors such 203as <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>, 204<a href="https://wiki.gnome.org/Apps/Gedit">gedit</a>, and 205<a href="https://www.vim.org">vim</a>. 206Specialized source-file editing can be done via the 207<a href="https://packagecontrol.io/packages/zoneinfo">Sublime 208zoneinfo</a> package for <a 209href="https://www.sublimetext.com">Sublime Text</a> and the <a 210href="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode 211zoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual 212Studio Code</a>. 213</p> 214<p> 215For further information about updates, please see 216<a href="https://tools.ietf.org/html/rfc6557">Procedures for 217Maintaining the Time Zone Database</a> (Internet <abbr 218title="Request For Comments">RFC</abbr> 6557). More detail can be 219found in <a href="theory.html">Theory and pragmatics of the tz code and data</a>. 220</p> 221<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2> 222<ul> 223<li>The article 224<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is 225an encyclopedic summary.</li> 226<li><a href="tz-how-to.html">How to Read the 227tz Database Source Files</a> explains the <code><abbr>tz</abbr></code> 228database format.</li> 229<li><a 230href="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A 231literary appreciation of the Olson/Zoneinfo/tz database</a> comments on the 232database's style.</li> 233</ul> 234<h2 id="web">Web sites using recent versions of the 235<code><abbr>tz</abbr></code> database</h2> 236<p> 237These are listed roughly in ascending order of complexity and fanciness. 238</p> 239<ul> 240<li><a href="https://time.is">Time.is</a> shows locations' 241time and zones.</li> 242<li><a href="https://www.timejones.com">TimeJones.com</a>, 243<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and 244<a href="http://worldclock.com">The World Clock</a> 245are time zone converters.</li> 246<li><a 247href="http://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a> 248lets you see the <code><abbr>TZ</abbr></code> values directly.</li> 249<li><a 250href="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current 251Time in 1000 Places</a> uses descriptions of the values.</li> 252<li><a href="http://www.timezoneconverter.com/cgi-bin/tzc.tzc">Time Zone 253Converter</a> 254uses a pulldown menu.</li> 255<li><a href="http://home.kpn.nl/vanadovv/time/TZworld.html">Complete 256timezone information for all countries</a> displays tables of DST rules. 257<li><a href="https://www.timeanddate.com/worldclock/">The World Clock – 258Worldwide</a> lets you sort zone names and convert times.</li> 259<li><a href="https://24timezones.com">24TimeZones</a> has a world 260time map and a time converter.</li> 261<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a> 262calculates the current time difference between locations.</li> 263<li><a href="http://www.wx-now.com">Weather Now</a> and 264<a href="http://www.thetimenow.com">The Time Now</a> list the weather too.</li> 265</ul> 266<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2> 267<ul> 268<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s 269<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data 270Distribution Service (tzdist) working group</a> defined <a 271href="https://tools.ietf.org/html/rfc7808">TZDIST</a> 272(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service, 273along with <a href="https://tools.ietf.org/html/rfc7809">CalDAV</a> 274(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for 275transferring time zone data by reference. The draft <a 276id="TZDIST-Geolocate" 277href="https://tools.ietf.org/html/draft-murchison-tzdist-geolocate-01">TZDIST 278Geolocate Extension</a> lets a client determine its time zone region 279from its geographic location using a <a 280href="https://tools.ietf.org/html/rfc5870">'geo' URI</a>.</li> 281<li>The <a href="https://tools.ietf.org/html/rfc5545"> 282Internet Calendaring and Scheduling Core Object Specification 283(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445) 284covers time zone 285data; see its VTIMEZONE calendar component. 286The iCalendar format requires specialized parsers and generators; a 287variant <a href="https://tools.ietf.org/html/rfc6321">xCal</a> 288(Internet <abbr>RFC</abbr> 6321) uses 289<a href="https://www.w3.org/XML/"><abbr 290title="Extensible Markup Language">XML</abbr></a> format, and a variant 291<a href="https://tools.ietf.org/html/rfc7265">jCal</a> 292(Internet <abbr>RFC</abbr> 7265) 293uses <a href="https://www.json.org"><abbr 294title="JavaScript Object Notation">JSON</abbr></a> format.</li> 295</ul> 296<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2> 297<ul> 298<li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a 299href="https://en.wikipedia.org/wiki/C_%28programming_language%29">C</a> 300program that compiles 301<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files. 302Vzic is freely 303available under the <a 304href="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr> 305General Public License (<abbr 306title="General Public License">GPL</abbr>)</a>.</li> 307<li><a href="https://sourceforge.net/projects/tzical/">tziCal – tz 308database conversion utility</a> is like Vzic, except for the <a 309href="https://www.microsoft.com/net">.NET framework</a> 310and with a <abbr>BSD</abbr>-style license.</li> 311<li><a 312href="http://search.cpan.org/dist/DateTime-TimeZone/">DateTime::TimeZone</a> 313contains a script <code>parse_olson</code> that compiles 314<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a> 315modules. It is part of the Perl <a 316href="http://datetime.perl.org">DateTime Project</a>, which is freely 317available under both the <abbr>GPL</abbr> and the Perl Artistic 318License. DateTime::TimeZone also contains a script 319<code>tests_from_zdump</code> that generates test cases for each clock 320transition in the <code><abbr>tz</abbr></code> database.</li> 321<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone 322Database Parser</a> is a 323<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and 324runtime library that is <a 325href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0355r4.html">moving 326forward</a> for inclusion in the next iteration of <a 327href="https://isocpp.org/std/the-standard"><em><abbr 328title="International Organization for Standardization">ISO</abbr> 329International Standard ISO/IEC 14882:2017(E) – Programming 330Language C++</em></a>. 331It is freely available under the 332<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li> 333<li><a id="ICU" href="http://site.icu-project.org">International Components for 334Unicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a 335href="https://en.wikipedia.org/wiki/Java_%28programming_language%29">Java</a> 336libraries for internationalization that 337has a compiler from <code><abbr>tz</abbr></code> source 338and from <abbr title="Common Locale Data Repository">CLDR</abbr> data 339(mentioned <a href="#CLDR">below</a>) 340into an <abbr>ICU</abbr>-specific format. 341<abbr>ICU</abbr> is freely available under a 342<abbr>BSD</abbr>-style license.</li> 343<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for 344the <a href="https://elixir-lang.org">Elixir</a> language downloads 345and compiles tz source and exposes <abbr 346title="Application Program Interface">API</abbr>s for use. It is 347freely available under the <abbr>MIT</abbr> license.</li> 348<li>Java-based compilers and libraries include: 349<ul> 350<li>The <a 351href="http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater 352tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by 353Oracle Java.</li> 354<li>The <a 355href="http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java 3568 <code>java.time</code> <abbr>API</abbr></a> can be supplemented by <a 357href="http://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>, 358which is freely available under a <abbr>BSD</abbr>-style license.</li> 359<li><a href="http://www.joda.org/joda-time/">Joda-Time – Java date 360and time <abbr>API</abbr></a> contains a class 361<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles 362<code><abbr>tz</abbr></code> source into a binary format. It inspired 363Java 8 <code>java.time</code>, which its users should migrate to once 364they can assume Java 8 or later. It is available under the <a 365href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li> 366<li><a href="https://github.com/MenoData/Time4J/">Time4J – 367Advanced date, time and interval library for Java</a> contains a class 368<code>net.time4j.tool.TimezoneRepositoryCompiler</code> that compiles 369<code><abbr>tz</abbr></code> source into a binary format. Time4J is 370available under the <a 371href="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser 372General Public License (<abbr title="Lesser General Public 373License">LGPL</abbr>)</a>.</li> 374<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and 375Java-based libraries.</li> 376</ul> 377<li><a href="https://nodatime.org">Noda Time – Date and 378time <abbr>API</abbr> for .NET</a> 379and <a href="http://www.babiej.demon.nl/Tz4Net/main.htm">TZ4Net</a> 380are similar to Joda-Time and Time4J, but for the .NET framework instead of 381Java. They are freely available under the 382Apache License 383and a <abbr>BSD</abbr>-style license, respectively.</li> 384<li><a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>-based 385compilers and libraries include: 386<ul> 387<li><a 388href="https://github.com/kshetline/compact-time-zone-generator">CompactTimeZoneGenerator</a> 389compiles time zone data into a compact form designed for 390JavaScript. It is freely available under a combination of 391the <abbr>MIT</abbr> license and the Apache License.</li> 392<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a 393plugin for the <a href="https://momentjs.com">Moment.js</a> date 394manipulation library. It is freely available under the <abbr>MIT</abbr> 395license.</li> 396<li><a href="https://github.com/mde/timezone-js">TimezoneJS.Date</a>'s 397<abbr>API</abbr> is upward compatible with standard JavaScript 398Dates. It is freely available under the Apache License.</li> 399<li><a href="https://github.com/sproutsocial/walltime-js">Walltime-js</a> 400translates <abbr>UT</abbr> to local time. It is freely available under 401the <abbr>MIT</abbr> license.</li> 402</ul> 403<li><a href="https://github.com/JuliaTime/">JuliaTime</a> contains a 404compiler from <code><abbr>tz</abbr></code> source into 405<a href="https://julialang.org/">Julia</a>. It is freely available 406under the <abbr>MIT</abbr> license.</li> 407<li><a href="http://pytz.sourceforge.net">pytz – World Timezone 408Definitions for Python</a> compiles <code><abbr>tz</abbr></code> source into 409<a href="https://www.python.org">Python</a>. 410It is freely available under a <abbr>BSD</abbr>-style license.</li> 411<li><a href="https://tzinfo.github.io">TZInfo – 412Ruby Timezone Library</a> 413compiles <code><abbr>tz</abbr></code> source into 414<a href="https://www.ruby-lang.org/en/">Ruby</a>. 415It is freely available under the <abbr>MIT</abbr> license.</li> 416<li>The <a href="http://www.squeaksource.com/Chronos/">Chronos Date/Time 417Library</a> is 418a <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class 419library that compiles <code><abbr>tz</abbr></code> source into a time 420zone repository whose format 421is either proprietary or an <abbr>XML</abbr>-encoded 422representation.</li> 423<li><a id="Tcl" href="https://tcl.tk">Tcl</a> 424contains a developer-oriented parser that compiles <code><abbr>tz</abbr></code> 425source into text files, along with a runtime that can read those 426files. Tcl is freely available under a <abbr>BSD</abbr>-style 427license.</li> 428</ul> 429<h2 id="binary">Other <code><abbr>tz</abbr></code> binary file readers</h2> 430<ul> 431<li>The <a 432href="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C 433Library</a> 434has an independent, thread-safe implementation of 435a <code><abbr>tz</abbr></code> binary file reader. 436This library is freely available under the LGPL 437and is widely used in <abbr>GNU</abbr>/Linux systems.</li> 438<li><a href="https://www.gnome.org">GNOME</a>'s 439<a href="https://developer.gnome.org/glib/">GLib</a> has 440a <code><abbr>tz</abbr></code> binary file reader written in C that 441creates a <code>GTimeZone</code> object representing sets 442of <abbr>UT</abbr> offsets. 443It is freely available under the <abbr>LGPL</abbr>.</li> 444<li>The 445<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s 446<code>baltzo::TimeZoneUtil</code> component contains a C++ 447implementation of a binary file reader. It is freely available under 448the Apache License.</li> 449<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++ 450library that translates between <abbr>UT</abbr> and civil time and 451can read binary files. It is freely available under the Apache 452License.</li> 453<li><a href="http://bmsi.com/java/#TZ">ZoneInfo.java</a> 454is a <code><abbr>tz</abbr></code> binary file reader written in Java. 455It is freely available under the <abbr>LGPL</abbr>.</li> 456<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C 457library that reads tz binary files and converts 458time stamps from one time zone or format to another. 459It is used by <a href="https://secure.php.net"><abbr 460title="PHP: Hypertext Preprocessor">PHP</abbr></a>, 461<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>, 462and <a href="https://www.mongodb.com">MongoDB</a>. 463It is freely available under the <abbr>MIT</abbr> license.</li> 464<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a 465JavaScript library that supports date arithmetic that is time zone 466aware. It is freely available under the <abbr>MIT</abbr> license.</li> 467<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a 468<code><abbr>tz</abbr></code> binary file reader.</li> 469<li><a href="http://search.cpan.org/perldoc?DateTime::TimeZone::Tzfile"> 470DateTime::TimeZone::Tzfile</a> 471is a <code><abbr>tz</abbr></code> binary file reader written in Perl. 472It is freely available under the same terms as Perl 473(dual <abbr>GPL</abbr> and Artistic license).</li> 474<li>The 475public-domain <a href="https://github.com/dbaron/tz.js">tz.js</a> 476library contains a Python tool that 477converts <code><abbr>tz</abbr></code> binary data into 478<abbr>JSON</abbr>-format data suitable for use 479in its JavaScript library for time zone conversion. Dates before 1970 480are not supported.</li> 481<li>The <a 482href="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a> 483package contains <a href="https://www.haskell.org">Haskell</a> code that 484parses and uses <code><abbr>tz</abbr></code> binary data. It is freely 485available under a <abbr>BSD</abbr>-style license.</li> 486</ul> 487<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2> 488<ul> 489<li><a href="https://foxclocks.org">FoxClocks</a> 490is an extension for <a href="https://www.google.com/chrome/">Google 491Chrome</a> and for <a 492href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Toolkit_API">Mozilla 493Toolkit</a> applications like <a 494href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a 495href="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>. 496It displays multiple clocks in the application window, and has a mapping 497interface to <a href="https://www.google.com/earth/">Google Earth</a>. 498It is freely available under the <abbr>GPL</abbr>.</li> 499<li><a href="https://golang.org">Go programming language</a> 500implementations contain a copy of a 32-bit subset of a recent 501<code><abbr>tz</abbr></code> database in a 502Go-specific format.</li> 503<li><a 504href="http://users.skynet.be/Peter.Verthez/projects/intclock/">International 505clock (intclock)</a> is a clock that displays multiple time zones on 506<abbr>GNU</abbr>/Linux and similar systems. It is freely available 507under the <abbr>GPL</abbr>.</li> 508<li>Microsoft Windows 8.1 509and later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr> 510data (mentioned <a href="#CLDR">below</a>) used by 511<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> 512classes such as <a 513href="https://msdn.microsoft.com/en-us/library/windows/apps/windows.globalization.datetimeformatting.datetimeformatter.aspx"><code>DateTimeFormatter</code></a>. 514<a id="System.TimeZoneInfo" 515href="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring 516Windows Time Zones with <code>System.TimeZoneInfo</code></a> describes 517the older, proprietary method of Microsoft Windows 2000 and later, 518which stores time zone data in the 519<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The 520<a 521href="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone → 522Tzid table</a> or <a 523href="https://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml"><abbr>XML</abbr> 524file</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs 525to <code><abbr>tz</abbr></code> names. 526<li><a 527href="https://www.oracle.com/java/index.html">Oracle 528Java</a> contains a copy of a subset of a recent 529<code><abbr>tz</abbr></code> database in a 530Java-specific format.</li> 531<li><a href="https://www.relativedata.com/time-zone-master">Time Zone 532Master</a> is a Microsoft Windows clock program that can automatically 533download, compile and use <code>tz</code> releases. The Basic version 534is free.</li> 535<li><a 536href="http://veladg.com/velaterra.html">VelaTerra</a> is 537a macOS program. Its developers 538<a href="http://veladg.com/tzoffer.html">offer free 539licenses</a> to <code><abbr>tz</abbr></code> contributors.</li> 540</ul> 541<h2 id="other-dbs">Other time zone databases</h2> 542<ul> 543<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a> 544is Astrodienst's Web version of Shanks and Pottenger's 545time zone history atlases also published in <a 546href="https://astrocom.com/astrology-products/software/acs-atlas-software">software</a> 547form by <a href="https://astrocom.com">ACS-Starcrafts</a>. 548These atlases are extensive but unreliable, as Shanks appears to have 549guessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no 550sources and do not indicate which entries are guesswork.</li> 551<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in 552its own <code>tztab</code>(4) format.</li> 553<li>Microsoft Windows has proprietary data mentioned 554<a href="#System.TimeZoneInfo">above</a>.</li> 555<li><a href="https://www.worldtimeserver.com">World Time Server</a> 556is another time zone database.</li> 557<li><a href="http://tycho.usno.navy.mil/tzones.html">World Time Zones</a> 558contains data from the Time Service Department of the 559<abbr>US</abbr> Naval Observatory.</li> 560<li>The <a 561href="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard 562Schedules Information Manual</a> of the 563International Air Transport Association 564gives current time zone rules for airports served by commercial aviation.</li> 565</ul> 566<h2 id="maps">Maps</h2> 567<ul> 568<li>The <a href="https://www.cia.gov/index.html">United States Central 569Intelligence Agency (<abbr 570title="Central Intelligence Agency">CIA</abbr>)</a> publishes a <a 571href="https://www.cia.gov/library/publications/the-world-factbook/graphics/ref_maps/physical/pdf/standard_time_zones_of_the_world.pdf">time 572zone map</a>; the 573<a 574href="https://www.lib.utexas.edu/maps/world.html">Perry–Castañeda 575Library Map Collection</a> 576of the University of Texas at Austin has copies of 577recent editions. 578The pictorial quality is good, 579but the maps do not indicate daylight saving time, 580and parts of the data are a few years out of date.</li> 581<li><a href="https://www.worldtimezone.com">Current time around the world 582and standard time zones map of the world</a> 583has several fancy time zone maps; it covers Russia particularly well. 584The maps' pictorial quality is not quite as good as the 585<abbr>CIA</abbr>'s 586but the maps are more up to date.</li> 587<li><a 588href="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How 589much is time wrong around the world?</a> maps the difference between 590mean solar and standard time, highlighting areas such as western China 591where the two differ greatly. It's a bit out of date, unfortunately.</li> 592</ul> 593<h2 id="boundaries">Time zone boundaries</h2> 594<p>Geographical boundaries between time zone regions are available 595from several <a href="https://en.wikipedia.org/wiki/Geolocation">geolocation</a> 596services and other sources.</p> 597<ul> 598<li>Databases of time zone boundaries include: 599<ul> 600<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone 601Boundary Builder</a> extracts 602<a href="https://www.openstreetmap.org">Open Street Map</a> data to build 603boundaries of <code><abbr>tz</abbr></code> regions. 604Its code is freely available under the <abbr>MIT</abbr> license, and 605its data entries are freely available under the 606<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons 607Open Database License</a>. The maps' borders appear to be quite accurate.</li> 608<li><a href="http://efele.net/maps/tz/"><abbr>TZ</abbr> timezones 609maps</a> contains <a 610href="https://en.wikipedia.org/wiki/Shapefile">shapefiles</a> of 611sets of <code><abbr>tz</abbr></code> regions. This includes 612<a href="http://efele.net/maps/tz/world/">tz_world</a>, a shapefile 613for all the world's regions. These maps are no longer maintained and 614are superseded by the Timezone Boundary Builder.</li> 615<li><a 616href="https://github.com/straup/whereonearth-timezone">Whereonearth-timezone</a> 617is in <a href="https://tools.ietf.org/html/rfc7946">GeoJSON</a> format 618(Internet <abbr>RFC</abbr> 7946), and combines the 619the tz_world shapefiles with the 620<a href="https://developer.yahoo.com/geo/geoplanet/">GeoPlanet</a> 621dataset.</li> 622</ul></li> 623<li>Programmatic interfaces that map geographical coordinates via tz_world to 624<code><abbr>tz</abbr></code> regions include: 625<ul> 626<li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is 627written in <a 628href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a> 629and is freely available under the <abbr>MIT</abbr> license.</li> 630<li>The <a href="https://github.com/bradfitz/latlong">latlong package</a> 631is written in Go and is freely available under the Apache License.</li> 632<li><a href="https://github.com/drtimcooper/LatLongToTimezone">LatLongToTimezone</a>, 633in both Java and 634<a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift</a> 635form, is freely available under the MIT license.</li> 636<li>For <a href="https://nodejs.org/en/">Node.js</a>, 637the <a href="https://www.npmjs.com/package/geo-tz">geo-tz module</a> 638is freely available under the MIT license, and 639the <a href="https://www.npmjs.com/package/tz-lookup">tz-lookup module</a> 640is in the public domain.</li> 641<li>The <a 642href="https://github.com/MrMinimal64/timezonefinder">timezonefinder</a> 643library for Python is freely available under the MIT license. 644<li>The <a 645href="https://github.com/gunyarakun/timezone_finder">timezone_finder</a> 646library for Ruby is freely available under the MIT license.</li> 647<li><a href="https://derickrethans.nl/what-time-is-it.html">What Time 648is It Here?</a> applies MongoDB 649geospatial query operators to shapefiles' data.</li> 650</ul></li> 651<li>Free access via a network API, if you register a key, is provided by 652the <a href="http://www.geonames.org/export/web-services.html#timezone">GeoNames Timezone web service</a>, 653the <a href="https://developers.google.com/maps/documentation/timezone/intro">Google Maps Time Zone API</a>, and 654the <a href="https://timezonedb.com">Time Zone Database & API</a>. 655Commercial network API access is provided 656by <a href="https://askgeo.com">AskGeo</a> 657and <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>. 658</li> 659<li>"<a 660href="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How 661to get a time zone from a location using latitude and longitude 662coordinates?</a>" discusses other geolocation possibilities.</li> 663<li><a href="http://statoids.com/statoids.html">Administrative 664Divisions of Countries ("Statoids")</a> lists 665political subdivision data related to time zones.</li> 666<li><a href="http://home.kpn.nl/vanadovv/time/Multizones.html">Time 667zone boundaries for multizone countries</a> summarizes legal 668boundaries between time zones within countries.</li> 669<li><a href="http://manifold.net/info/freestuff.shtml">Manifold Software 670– GIS and Database Tools</a> includes a Manifold-format map of 671world time zone boundaries distributed under the 672<abbr>GPL</abbr>.</li> 673<li>A ship within the <a 674href="https://en.wikipedia.org/wiki/Territorial_waters">territorial 675waters</a> of any nation uses that nation's time. In international 676waters, time zone boundaries are meridians 15° apart, except that 677<abbr>UT</abbr>−12 and <abbr>UT</abbr>+12 are each 7.5° 678wide and are separated by 679the 180° meridian (not by the International Date Line, which is 680for land and territorial waters only). A captain can change ship's 681clocks any time after entering a new time zone; midnight changes are 682common.</li> 683</ul> 684<h2 id="civil">Civil time concepts and history</h2> 685<ul> 686<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A 687Walk through Time</a> 688surveys the evolution of timekeeping.</li> 689<li><a href="http://www.webexhibits.org/daylightsaving/">About Daylight 690Saving Time – History, rationale, laws & dates</a> 691is an overall history of <abbr>DST</abbr>.</li> 692<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a> 693contains guidelines and best practices for software applications that 694deal with civil time.</li> 695<li><a href="http://seizethedaylight.com/dst/">A Brief 696History of Daylight Saving Time</a> summarizes some of the contentious 697history of <abbr>DST</abbr>.</li> 698<li><a href="https://www.staff.science.uu.nl/~gent0113/idl/idl.htm">A History of 699the International Date Line</a> tells the story of the most important 700time zone boundary.</li> 701<li><a href="http://statoids.com/tconcept.html">Basic Time 702Zone Concepts</a> discusses terminological issues behind time zones.</li> 703</ul> 704<h2 id="national">National histories of legal time</h2> 705<dl> 706<dt>Australia</dt> 707<dd>The Parliamentary Library has commissioned a <a 708href="https://www.aph.gov.au/binaries/library/pubs/rp/2009-10/10rp10.pdf">research 709paper on daylight saving time in Australia</a>. 710The Bureau of Meteorology publishes a list of <a 711href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation 712Dates of Daylight Savings Time within Australia</a>.</dd> 713<dt>Belgium</dt> 714<dd>The Royal Observatory of Belgium maintains a table of <a 715href="http://www.astro.oma.be/GENERAL/INFO/nli001a.html" 716hreflang="nl">time in Belgium (in Dutch)</a>.</dd> 717<dt>Brazil</dt> 718<dd>The Time Service Department of the National Observatory 719records <a href="http://pcdsh01.on.br/DecHV.html" 720hreflang="pt-BR">Brazil's daylight saving time decrees (in 721Portuguese)</a>.</dd> 722<dt>Canada</dt> 723<dd>National Research Council Canada publishes current 724and some older information about <a 725href="https://www.nrc-cnrc.gc.ca/eng/services/time/time_zones.html">time 726zones & daylight saving time</a>.</dd> 727<dt>Chile</dt> 728<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a 729<a href="http://www.horaoficial.cl/historia_hora.html" hreflang="es">history of 730Chile's official time (in Spanish)</a>.</dd> 731<dt>Czech Republic</dt> 732<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas" 733hreflang="cs">When daylight saving time starts and ends (in Czech)</a> 734summarizes and cites historical DST regulations.</dd> 735<dt>Germany</dt> 736<dd>The National Institute for Science and Technology maintains the <a 737href="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation 738of Legal Time in Germany</a>.</dd> 739<dt>Israel</dt> 740<dd>The Interior Ministry periodically issues <a 741href="ftp://ftp.cs.huji.ac.il/pub/tz/announcements" 742hreflang="he">announcements (in Hebrew)</a>.</dd> 743<dt>Italy</dt> 744<dd>The National Institute of Metrological Research maintains a 745<a href="http://www.nanospin.eu/res/tf/ora_legale_i.shtml">table of civil time 746(in Italian)</a>.</dd> 747<dt>Mexico</dt> 748<dd>The Investigation and Analysis Service of the Mexican Library of 749Congress has published a <a 750href="http://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm" 751hreflang="es">history of Mexican local time (in Spanish)</a>.</dd> 752<dt>Malaysia</dt> 753<dd>See Singapore <a href="#Singapore">below</a>.</dd> 754<dt>Netherlands</dt> 755<dd><a href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm" 756hreflang="nl">Legal time in the Netherlands (in Dutch)</a> 757covers the history of local time in the Netherlands from ancient times.</dd> 758<dt>New Zealand</dt> 759<dd>The Department of Internal Affairs maintains a brief <a 760href="https://www.dia.govt.nz/Daylight-Saving-History">History of 761Daylight Saving</a>. The privately-maintained <a 762href="http://astrologyschool.com/nztime.html">History of New Zealand 763time</a> has more details.</dd> 764<dt>Singapore</dt> 765<dd><a id="Singapore" 766href="http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html">Why 767is Singapore in the "Wrong" Time Zone?</a> details the 768history of legal time in Singapore and Malaysia.</dd> 769<dt>United Kingdom</dt> 770<dd><a 771href="https://www.polyomino.org.uk/british-time/">History of 772legal time in Britain</a> discusses in detail the country 773with perhaps the best-documented history of clock adjustments. 774The National Physical Laboratory also maintains an <a 775href="http://www.npl.co.uk/educate-explore/what-is-time/archive-of-summer-time-dates">Archive 776of Summer time dates</a>.</dd> 777<dt>United States</dt> 778<dd>The Department of Transportation's <a 779href="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent 780Time Zone Proceedings</a> lists changes to time zone boundaries.</dd> 781<dt>Uruguay</dt> 782<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan 783Navy (SOHMA) publishes an annual <a 784href="http://www.armada.mil.uy/Pagina/institucion/dimat/sohma/almanaque.html" hreflang="es">almanac 785(in Spanish)</a>.</dd> 786</dl> 787<h2 id="precision">Precision timekeeping</h2> 788<ul> 789<li><a 790href="http://leapsecond.com/hpan/an1289.pdf">The 791Science of Timekeeping</a> is a thorough introduction 792to the theory and practice of precision timekeeping.</li> 793<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of 794Time 2016</a> contains several freely-readable papers.</li> 795<li><a href="http://www.ntp.org"><abbr 796title="Network Time Protocol">NTP</abbr>: The Network 797Time Protocol</a> (Internet <abbr>RFC</abbr> 5905) 798discusses how to synchronize clocks of 799Internet hosts.</li> 800<li>The <a 801href="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision 802Time Protocol</a> (<abbr 803title="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588) 804can achieve submicrosecond clock accuracy on a local area network.</li> 805<li><a 806href="https://tools.ietf.org/html/rfc4833">Timezone 807Options for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a> 808(Internet <abbr>RFC</abbr> 4833) 809specifies a <a 810href="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a> 811option for a server to configure 812a client's time zone and daylight saving settings automatically.</li> 813<li><a 814href="https://www.cv.nrao.edu/~rfisher/Ephemerides/times.html">Astronomical 815Times</a> explains more abstruse astronomical time scales like 816<abbr title="Terrestrial Dynamic Time">TDT</abbr>, 817<abbr title="Geocentric Coordinate Time">TCG</abbr>, and 818<abbr title="Barycentric Dynamic Time">TDB</abbr>. 819<a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time 820Scales</a> goes into more detail, particularly for historical variants.</li> 821<li>The <a href="https://www.iau.org"><abbr 822title="International Astronomical Union">IAU</abbr></a>'s <a 823href="http://www.iausofa.org"><abbr 824title="Standards Of Fundamental Astronomy">SOFA</abbr></a> 825collection contains C and <a 826href="https://en.wikipedia.org/wiki/Fortran">Fortran</a> 827code for converting among time scales like 828<abbr title="International Atomic Time">TAI</abbr>, 829<abbr>TDB</abbr>, <abbr>TDT</abbr> and 830<abbr>UTC</abbr>.</li> 831<li><a 832href="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock 833– Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the 834diverse local time 835scales used by each landed mission on Mars.</li> 836<li><a href="http://leapsecond.com">LeapSecond.com</a> is 837dedicated not only to leap seconds but to precise time and frequency 838in general. It covers the state of the art in amateur timekeeping, and 839how the art has progressed over the past few decades.</li> 840<li><a 841href="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr 842title="International Earth Rotation and Reference Systems Service">IERS</abbr> 843Bulletins</a> contains official publications of the International 844Earth Rotation and Reference Systems Service, which decides when leap 845seconds occur. The <code>tz</code> code and data support leap seconds 846via an optional "<code>right</code>" configuration, as opposed to the 847default "<code>posix</code>" configuration.</li> 848<li><a href="https://developers.google.com/time/smear">Leap Smear</a> 849discusses how to gradually adjust <abbr>POSIX</abbr> clocks near a 850leap second so that they disagree with <abbr>UTC</abbr> by at most a 851half second, even though every <abbr>POSIX</abbr> minute has exactly 852sixty seconds. This approach works with the default <code>tz</code> 853"<code>posix</code>" configuration, is <a 854href="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by 855the <abbr>NTP</abbr> reference implementation, and is used by major 856cloud service providers.</li> 857<li>The <a 858href="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap 859Second Discussion List</a> covers <a 860href="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy 861and Klepczynski's 1999 proposal to discontinue leap seconds</a>, 862discussed further in 863<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The 864leap second: its history and possible future</a>. 865<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr> 866might be redefined 867without Leap Seconds</a> gives pointers on this 868contentious issue, which was active until 2015 and could become active 869again.</li> 870</ul> 871<h2 id="notation">Time notation</h2> 872<ul> 873<li>The <a id="CLDR" href="http://cldr.unicode.org">Unicode Common Locale Data 874Repository (<abbr>CLDR</abbr>) Project</a> has localizations for time 875zone names, abbreviations, identifiers, and formats. For example, it 876contains French translations for "Eastern European Summer Time", 877"<abbr title="Eastern European Summer Time">EEST</abbr>", and 878"Bucharest". Its 879<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type 880charts</a> show these values for many locales. Data values are available in 881both <abbr title="Locale Data Markup Language">LDML</abbr> 882(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>. 883<li> 884<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of 885the international standard date and time notation</a> is a good 886summary of 887<a 888href="https://www.iso.org/standard/40874.html"><em><abbr>ISO</abbr> 8898601:2004 – Data elements and interchange formats – Information 890interchange – Representation of dates and times</em></a>.</li> 891<li> 892<a href="https://www.w3.org/TR/xmlschema-2/#dateTime"><abbr>XML</abbr> 893Schema: Datatypes – dateTime</a> specifies a format inspired by 894<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li> 895<li><a href="https://tools.ietf.org/html/rfc5322#section-3.3">§3.3 of 896Internet Message Format</a> (Internet <abbr>RFC</abbr> 5322) 897specifies the time notation used in email and <a 898href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a> 899headers.</li> 900<li> 901<a href="https://tools.ietf.org/html/rfc3339">Date and Time 902on the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339) 903specifies an <abbr>ISO</abbr> 8601 904profile for use in new Internet 905protocols.</li> 906<li> 907<a href="https://www.hackcraft.net/web/datetime/">Date & Time 908Formats on the Web</a> surveys web- and Internet-oriented date and time 909formats.</li> 910<li>Alphabetic time zone abbreviations should not be used as unique 911identifiers for <abbr>UT</abbr> offsets as they are ambiguous in 912practice. For example, in English-speaking North America 913"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>, 914but in China it denotes 8 hours ahead of <abbr>UT</abbr>, 915and French-speaking North Americans prefer 916"<abbr title="Heure Normale du Centre">HNC</abbr>" to 917"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code> 918database contains English abbreviations for many time stamps; 919unfortunately some of these abbreviations were merely the database maintainers' 920inventions, and these have been removed when possible.</li> 921<li>Numeric time zone abbreviations typically count hours east of 922<abbr>UT</abbr>, e.g., +09 for Japan and 923−10 for Hawaii. However, the <abbr>POSIX</abbr> 924<code><abbr>TZ</abbr></code> environment variable uses the opposite convention. 925For example, one might use <code><abbr>TZ</abbr>="<abbr 926title="Japan Standard Time">JST</abbr>-9"</code> and 927<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code> 928for Japan and Hawaii, respectively. If the 929<code><abbr>tz</abbr></code> database is available, it is usually better to use 930settings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and 931<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid 932confusion, handle old time stamps better, and insulate you better from 933any future changes to the rules. One should never set 934<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like 935<code>"GMT-9"</code>, though, since this would incorrectly imply that 936local time is nine hours ahead of <abbr>UT</abbr> and the time zone 937is called "<abbr>GMT</abbr>".</li> 938</ul> 939<h2 id="see-also">See also</h2> 940<ul> 941<li><a href="theory.html">Theory and pragmatics of the tz code and data</a></li> 942<li><a href="tz-art.html">Time and the Arts</a></li> 943</ul> 944<hr> 945<address> 946This web page is in the public domain, so clarified as of 9472009-05-17 by Arthur David Olson. 948<br> 949Please send corrections to this web page to the 950<a href="mailto:tz@iana.org">time zone mailing list</a>. 951</address> 952</body> 953</html> 954