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