tz-link.html 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Time zone and daylight saving time data</title>
  5. <meta charset="UTF-8">
  6. <style>
  7. pre {margin-left: 2em; white-space: pre-wrap;}
  8. </style>
  9. </head>
  10. <body>
  11. <h1>Time zone and daylight saving time data</h1>
  12. <p>
  13. <a href="https://en.wikipedia.org/wiki/Time_zone">Time zone</a> and
  14. <a href="https://en.wikipedia.org/wiki/Daylight_saving_time">daylight-saving</a>
  15. rules are controlled by individual
  16. governments. They are sometimes changed with little notice, and their
  17. histories and planned futures are often recorded only fitfully. Here
  18. is a summary of attempts to organize and record relevant data in this
  19. area.
  20. </p>
  21. <h3>Outline</h3>
  22. <nav>
  23. <ul>
  24. <li>The <code><abbr>tz</abbr></code> database product and process
  25. <ul>
  26. <li><a href="#tzdb">The <code><abbr>tz</abbr></code> database</a></li>
  27. <li><a href="#download">Downloading the <code><abbr>tz</abbr></code> database</a></li>
  28. <li><a href="#changes">Changes to the <code><abbr>tz</abbr></code> database</a></li>
  29. <li><a href="#coordinating">Coordinating with governments and distributors</a></li>
  30. <li><a href="#commentary">Commentary on the <code><abbr>tz</abbr></code> database</a></li>
  31. </ul>
  32. </li>
  33. <li>Uses of the <code><abbr>tz</abbr></code> database
  34. <ul>
  35. <li><a href="#web">Web sites using recent versions of the <code><abbr>tz</abbr></code> database</a></li>
  36. <li><a href="#protocols">Network protocols for <code><abbr>tz</abbr></code> data</a></li>
  37. <li><a href="#compilers">Other <code><abbr>tz</abbr></code> compilers</a></li>
  38. <li><a href="#TZif">Other <abbr>TZif</abbr> readers</a></li>
  39. <li><a href="#software">Other <code><abbr>tz</abbr></code>-based time zone software</a></li>
  40. </ul>
  41. </li>
  42. <li>Related data
  43. <ul>
  44. <li><a href="#other-dbs">Other time zone databases</a></li>
  45. <li><a href="#maps">Maps</a></li>
  46. <li><a href="#boundaries">Time zone boundaries</a></li>
  47. </ul>
  48. </li>
  49. <li>Timekeeping concepts
  50. <ul>
  51. <li><a href="#civil">Civil time concepts and history</a></li>
  52. <li><a href="#national">National histories of legal time</a></li>
  53. <li><a href="#costs">Costs and benefits of time shifts</a></li>
  54. <li><a href="#precision">Precision timekeeping</a></li>
  55. <li><a href="#notation">Time notation</a></li>
  56. </ul>
  57. </li>
  58. <li><a href="#see-also">See also</a></li>
  59. </ul>
  60. </nav>
  61. <section>
  62. <h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
  63. <p>
  64. The <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
  65. time zone database contains code and data
  66. that represent the history of local time
  67. for many representative locations around the globe.
  68. It is updated periodically to reflect changes made by political bodies
  69. to time zone boundaries and daylight saving rules.
  70. This database (known as <code><abbr>tz</abbr></code>,
  71. <code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>)
  72. is used by several implementations,
  73. including
  74. <a href="https://www.gnu.org/software/libc/">the
  75. <abbr title="GNU's Not Unix">GNU</abbr>
  76. C Library</a> (used in
  77. <a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
  78. <a href="https://www.android.com">Android</a>,
  79. <a href="https://www.freebsd.org">Free<abbr
  80. title="Berkeley Software Distribution">BSD</abbr></a>,
  81. <a href="https://netbsd.org">Net<abbr>BSD</abbr></a>,
  82. <a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>,
  83. <a href="https://www.chromium.org/chromium-os/">Chromium OS</a>,
  84. <a href="https://cygwin.com">Cygwin</a>,
  85. <a href="https://mariadb.org">MariaDB</a>,
  86. <a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
  87. <a href="https://www.mysql.com">MySQL</a>,
  88. <a href="https://en.wikipedia.org/wiki/WebOS"><abbr
  89. title="Web Operating System">webOS</abbr></a>,
  90. <a href="https://en.wikipedia.org/wiki/IBM_AIX"><abbr
  91. title="Advanced Interactive eXecutive">AIX</abbr></a>,
  92. <a href="https://www.apple.com/ios"><abbr
  93. title="iPhone OS">iOS</abbr></a>,
  94. <a href="https://www.apple.com/macos">macOS</a>,
  95. <a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
  96. <a href="https://www.vmssoftware.com">Open<abbr
  97. title="Virtual Memory System">VMS</abbr></a>,
  98. <a href="https://www.oracle.com/database/">Oracle Database</a>, and
  99. <a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
  100. <p>
  101. Each main entry in the database represents a <dfn>timezone</dfn>
  102. for a set of civil-time clocks that have all agreed since 1970.
  103. Timezones are typically identified by continent or ocean and then by the
  104. name of the largest city within the region containing the clocks.
  105. For example, <code>America/New_York</code>
  106. represents most of the <abbr title="United States">US</abbr> eastern time zone;
  107. <code>America/Phoenix</code> represents most of Arizona, which
  108. uses mountain time without daylight saving time (<abbr>DST</abbr>);
  109. <code>America/Detroit</code> represents most of Michigan, which uses
  110. eastern time but with different <abbr>DST</abbr> rules in 1975;
  111. and other entries represent smaller regions like Starke County,
  112. Indiana, which switched from central to eastern time in 1991
  113. and switched back in 2006.
  114. To use the database on an extended <a
  115. href="https://en.wikipedia.org/wiki/POSIX"><abbr
  116. title="Portable Operating System Interface">POSIX</abbr></a>
  117. implementation set the <code><abbr>TZ</abbr></code>
  118. environment variable to the location's full name,
  119. e.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
  120. <p>
  121. Associated with each timezone is a history of offsets from
  122. <a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
  123. Time</a> (<abbr>UT</abbr>), which is <a
  124. href="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
  125. Time</a> (<abbr>GMT</abbr>) with days beginning at midnight;
  126. for timestamps after 1960 this is more precisely <a
  127. href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
  128. Universal Time</a> (<abbr>UTC</abbr>).
  129. The database also records when daylight saving time was in use,
  130. along with some time zone abbreviations such as <abbr>EST</abbr>
  131. for Eastern Standard Time in the <abbr>US</abbr>.</p>
  132. </section>
  133. <section>
  134. <h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2>
  135. <p>
  136. The following <a
  137. href="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
  138. the latest release's two
  139. <a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
  140. to a <abbr>GNU</abbr>/Linux or similar host.</p>
  141. <pre><code>mkdir tzdb
  142. cd tzdb
  143. <a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
  144. wget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
  145. <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 -
  146. gzip -dc tzdata-latest.tar.gz | tar -xf -
  147. </code></pre>
  148. <p>Alternatively, the following shell commands download the same
  149. release in a single-tarball format containing extra data
  150. useful for regression testing:</p>
  151. <pre><code>wget <a href="https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz">https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz</a>
  152. <a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
  153. </code></pre>
  154. <p>These commands use convenience links to the latest release
  155. of the <code><abbr>tz</abbr></code> database hosted by the
  156. <a href="https://www.iana.org/time-zones">Time Zone Database website</a>
  157. of the <a href="https://www.iana.org">Internet Assigned Numbers
  158. Authority (IANA)</a>.
  159. Older releases are in files named
  160. <code>tzcode<var>V</var>.tar.gz</code>,
  161. <code>tzdata<var>V</var>.tar.gz</code>, and
  162. <code>tzdb-<var>V</var>.tar.lz</code>,
  163. where <code><var>V</var></code> is the version.
  164. Since 1996, each version has been a four-digit year followed by
  165. lower-case letter (<samp>a</samp> through <samp>z</samp>,
  166. then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
  167. through <samp>zzz</samp>, and so on).
  168. Since version 2022a, each release has been distributed in
  169. <a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06">POSIX
  170. ustar interchange format</a>, compressed as described above;
  171. older releases use a nearly compatible format.
  172. Since version 2016h, each release has contained a text file named
  173. "<samp>version</samp>" whose first (and currently only) line is the version.
  174. Older releases are <a href="https://ftp.iana.org/tz/releases/">archived</a>,
  175. and are also available in an
  176. <a href="ftp://ftp.iana.org/tz/releases/"><abbr
  177. title="File Transfer Protocol">FTP</abbr> directory</a> via a
  178. less secure protocol.</p>
  179. <p>Alternatively, a development repository of code and data can be
  180. retrieved from <a href="https://github.com">GitHub</a> via the shell
  181. command:</p>
  182. <pre><code><a href="https://git-scm.com">git</a> clone <a href="https://github.com/eggert/tz">https://github.com/eggert/tz</a>
  183. </code></pre>
  184. <p>
  185. Since version 2012e, each release has been tagged in development repositories.
  186. Untagged commits are less well tested and probably contain
  187. more errors.</p>
  188. <p>
  189. After obtaining the code and data files, see the
  190. <code>README</code> file for what to do next.
  191. The code lets you compile the <code><abbr>tz</abbr></code> source files into
  192. machine-readable binary files, one for each location. The binary files
  193. are in a special timezone information format (<dfn><abbr>TZif</abbr></dfn>)
  194. specified by <a href="https://datatracker.ietf.org/doc/html/8536">Internet
  195. <abbr>RFC</abbr> 8536</a>.
  196. The code also lets
  197. you read a <abbr>TZif</abbr> file and interpret timestamps for that
  198. location.</p>
  199. </section>
  200. <section>
  201. <h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
  202. <p>
  203. The <code><abbr>tz</abbr></code> code and data
  204. are by no means authoritative. If you find errors, please
  205. send changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
  206. the time zone mailing list. You can also <a
  207. href="https://mm.icann.org/mailman/listinfo/tz">subscribe</a> to it
  208. and browse the <a
  209. href="https://mm.icann.org/pipermail/tz/">archive of old
  210. messages</a>.
  211. <a href="https://tzdata-meta.timtimeonline.com/">Metadata for mailing list
  212. discussions</a> and corresponding data changes can be
  213. generated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>.
  214. </p>
  215. <p>
  216. Changes to the <code><abbr>tz</abbr></code> code and data are often
  217. propagated to clients via operating system updates, so
  218. client <code><abbr>tz</abbr></code> data can often be corrected by
  219. applying these updates. With GNU/Linux and similar systems, if your
  220. maintenance provider has not yet adopted the
  221. latest <code><abbr>tz</abbr></code> data, you can often short-circuit
  222. the process by tailoring the generic instructions in
  223. the <code><abbr>tz</abbr> README</code> file and installing the latest
  224. data yourself. System-specific instructions for installing the
  225. latest <code><abbr>tz</abbr></code> data have also been published
  226. for <a href="https://developer.ibm.com/articles/au-aix-olson-time-zone/"><abbr>AIX</abbr></a>,
  227. <a
  228. href="https://source.android.com/devices/tech/config/timezone-rules">Android</a>,
  229. <a
  230. href="https://unicode-org.github.io/icu/userguide/datetime/timezone/"><abbr
  231. title="International Components for Unicode">ICU</abbr></a>,
  232. <a href="https://www.ibm.com/support/pages/java-sdk-time-zone-update-utility"><abbr>IBM</abbr>
  233. JDK</a>,
  234. <a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
  235. href="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
  236. <a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
  237. href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">OpenJDK/Oracle JDK</a>.
  238. </p>
  239. <p>Since version 2013a,
  240. sources for the <code><abbr>tz</abbr></code> database have been
  241. <a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
  242. title="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
  243. <a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
  244. with lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
  245. title="linefeed">LF</abbr></a>,
  246. which can be modified by common text editors such
  247. as <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
  248. <a href="https://wiki.gnome.org/Apps/Gedit">gedit</a>, and
  249. <a href="https://www.vim.org">vim</a>.
  250. Specialized source-file editing can be done via the
  251. <a href="https://packagecontrol.io/packages/zoneinfo">Sublime
  252. zoneinfo</a> package for <a
  253. href="https://www.sublimetext.com">Sublime Text</a> and the <a
  254. href="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
  255. zoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
  256. Studio Code</a>.
  257. </p>
  258. <p>
  259. For further information about updates, please see
  260. <a href="https://datatracker.ietf.org/doc/html/rfc6557">Procedures for
  261. Maintaining the Time Zone Database</a> (Internet <abbr
  262. title="Request For Comments">RFC</abbr> 6557). More detail can be
  263. found in <a href="theory.html">Theory and pragmatics of the
  264. <code><abbr>tz</abbr></code> code and data</a>.
  265. <a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
  266. displays changes between recent <code><abbr>tzdb</abbr></code> versions.
  267. </p>
  268. </section>
  269. <section>
  270. <h2 id="coordinating">Coordinating with governments and distributors</h2>
  271. <p>
  272. As discussed in
  273. "<a href="https://www.icann.org/en/blogs/details/how-time-zones-are-coordinated-13-03-2023-en">How
  274. Time Zones Are Coordinated</a>", the time zone database relies on
  275. collaboration among governments, the time zone database volunteer
  276. community, and data distributors downstream.
  277. <p>
  278. If your government plans to change its time zone boundaries or
  279. daylight saving rules, please send email to <a
  280. href="mailto:tz@iana.org"><code>tz@iana.org</code></a> well in advance,
  281. as this will lessen confusion and will coordinate updates to many cell phones,
  282. computers, and other devices around the world.
  283. In your email, please cite the legislation or regulation that specifies
  284. the change, so that it can be checked for details such as the exact times
  285. when clock transitions occur.
  286. It is OK if a rule change is planned to affect clocks
  287. far into the future, as a long-planned change can easily be reverted
  288. or otherwise altered with a year's notice before the change would have
  289. affected clocks.</p>
  290. <p>
  291. There is no fixed schedule for <code><abbr>tzdb</abbr></code> releases.
  292. However, typically a release occurs every few months.
  293. Many downstream timezone data distributors wait for
  294. a <code><abbr>tzdb</abbr></code> release before they produce an update
  295. to time zone behavior in consumer devices and software products.
  296. After a release, various parties must integrate, test,
  297. and roll out an update before <a
  298. href="https://en.wikipedia.org/wiki/End_user">end users</a> see changes.
  299. These updates can be expensive, for both the <a
  300. href="https://en.wikipedia.org/wiki/Quality_assurance">quality
  301. assurance</a> process and the overall cost of shipping and installing
  302. updates to each device's copy of <code><abbr>tzdb</abbr></code>.
  303. Updates may be batched with other updates and may take substantial
  304. time to reach end users after a release.
  305. Older devices may no longer be supported and thus may never be updated,
  306. which means they will continue to use out-of-date rules.</p>
  307. <p>
  308. For these reasons any rule change should be promulgated at least a
  309. year before it affects how clocks operate; otherwise, there is a good
  310. chance that many clocks will be wrong due to delays in propagating updates,
  311. and that residents will be confused or even actively resist the change.
  312. The shorter the notice, the more likely clock problems will arise; see "<a
  313. href="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
  314. the Timing of Time Zone Changes</a>" for examples.
  315. </p>
  316. </section>
  317. <section>
  318. <h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
  319. <ul>
  320. <li>The article
  321. <a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
  322. an encyclopedic summary.</li>
  323. <li><a href="tz-how-to.html">How to Read the
  324. tz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
  325. database format.</li>
  326. <li><a
  327. href="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
  328. literary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
  329. database's style.</li>
  330. <li><a href="https://doi.org/10.1145/3340301.3341125">What time is it:
  331. managing time in the internet</a> analyzes the database longitudinally.</li>
  332. </ul>
  333. </section>
  334. <section>
  335. <h2 id="web">Web sites using recent versions of the
  336. <code><abbr>tz</abbr></code> database</h2>
  337. <p>
  338. These are listed roughly in ascending order of complexity and fanciness.
  339. </p>
  340. <ul>
  341. <li><a href="https://time.is">Time.is</a> shows locations'
  342. time and zones.</li>
  343. <li><a href="https://www.timejones.com">TimeJones.com</a>,
  344. <a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
  345. <a href="https://www.worldclock.com">The World Clock</a>
  346. are time zone converters.</li>
  347. <li><a href="https://timezonedb.com/download">TimeZoneDB Database</a>
  348. publishes <code><abbr>tzdb</abbr></code>-derived data in
  349. <a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr
  350. title="comma-separated values">CSV</abbr></a> and
  351. in <a href="https://en.wikipedia.org/wiki/SQL"><abbr
  352. title="Structured Query Language">SQL</abbr></a> form.</li>
  353. <li><a
  354. href="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
  355. lets you see the <code><abbr>TZ</abbr></code> values directly.</li>
  356. <li><a
  357. href="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
  358. Time in 1000 Places</a> uses descriptions of the values.</li>
  359. <li><a href="https://home.kpn.nl/vanadovv/time/TZworld.html">Complete
  360. timezone information for all countries</a>
  361. displays tables of <abbr>DST</abbr> rules.
  362. <li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
  363. Worldwide</a> lets you sort zone names and convert times.</li>
  364. <li><a href="https://24timezones.com">24TimeZones</a> has a world
  365. time map and a time converter.</li>
  366. <li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
  367. calculates the current time difference between locations.</li>
  368. <li><a href="https://www.wx-now.com">Weather Now</a> and
  369. <a href="https://www.thetimenow.com">The Time Now</a> list the weather too.</li>
  370. </ul>
  371. </section>
  372. <section>
  373. <h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
  374. <ul>
  375. <li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
  376. <a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
  377. Distribution Service (tzdist) working group</a> defined <a
  378. href="https://datatracker.ietf.org/doc/html/rfc7808">TZDIST</a>
  379. (Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
  380. along with <a href="https://datatracker.ietf.org/doc/html/rfc7809">CalDAV</a>
  381. (Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
  382. transferring time zone data by reference.
  383. <a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
  384. implementations</a> are available.
  385. The <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
  386. mailing list</a> discusses possible extensions.</li>
  387. <li>The <a href="https://datatracker.ietf.org/doc/html/rfc5545">
  388. Internet Calendaring and Scheduling Core Object Specification
  389. (iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
  390. covers time zone
  391. data; see its VTIMEZONE calendar component.
  392. The iCalendar format requires specialized parsers and generators; a
  393. variant <a href="https://datatracker.ietf.org/doc/html/rfc6321">xCal</a>
  394. (Internet <abbr>RFC</abbr> 6321) uses
  395. <a href="https://www.w3.org/XML/"><abbr
  396. title="Extensible Markup Language">XML</abbr></a> format, and a variant
  397. <a href="https://datatracker.ietf.org/doc/html/rfc7265">jCal</a>
  398. (Internet <abbr>RFC</abbr> 7265)
  399. uses <a href="https://www.json.org"><abbr
  400. title="JavaScript Object Notation">JSON</abbr></a> format.</li>
  401. </ul>
  402. </section>
  403. <section>
  404. <h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
  405. <p>Although some of these do not fully support
  406. <code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
  407. distributions you can generally work around compatibility problems by
  408. running the command <code>make rearguard_tarballs</code> and compiling
  409. from the resulting tarballs instead.</p>
  410. <ul>
  411. <li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a
  412. href="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>
  413. program that compiles
  414. <code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
  415. Vzic is freely
  416. available under the <a
  417. href="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
  418. General Public License (<abbr
  419. title="General Public License">GPL</abbr>)</a>.</li>
  420. <li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
  421. database conversion utility</a> is like Vzic, except for the <a
  422. href="https://dotnet.microsoft.com">.NET framework</a>
  423. and with a <abbr>BSD</abbr>-style license.</li>
  424. <li><a
  425. href="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
  426. contains a script <code>parse_olson</code> that compiles
  427. <code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
  428. modules. It is part of the Perl <a
  429. href="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
  430. which is freely
  431. available under both the <abbr>GPL</abbr> and the Perl Artistic
  432. License. DateTime::TimeZone also contains a script
  433. <code>tests_from_zdump</code> that generates test cases for each clock
  434. transition in the <code><abbr>tz</abbr></code> database.</li>
  435. <li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
  436. Database Parser</a> is a
  437. <a href="https://en.wikipedia.org/wiki/C++">C++</a> parser and
  438. runtime library with <a
  439. href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">API</a>
  440. adopted by
  441. <a href="https://en.wikipedia.org/wiki/C++20">C++20</a>,
  442. the current iteration of the C++ standard.
  443. It is freely available under the
  444. <abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
  445. <li><a id="ICU" href="https://icu.unicode.org">International Components for
  446. Unicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
  447. href="https://en.wikipedia.org/wiki/Java_(programming_language)">Java</a>
  448. libraries for internationalization that
  449. has a compiler from <code><abbr>tz</abbr></code> source
  450. and from <abbr title="Common Locale Data Repository">CLDR</abbr> data
  451. (mentioned <a href="#CLDR">below</a>)
  452. into an <abbr>ICU</abbr>-specific format.
  453. <abbr>ICU</abbr> is freely available under a
  454. <abbr>BSD</abbr>-style license.</li>
  455. <li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
  456. the <a href="https://elixir-lang.org">Elixir</a> language downloads
  457. and compiles <code><abbr>tz</abbr></code> source and exposes <abbr
  458. title="Application Program Interface">API</abbr>s for use. It is
  459. freely available under the <abbr>MIT</abbr> license.</li>
  460. <li>Java-based compilers and libraries include:
  461. <ul>
  462. <li>The <a
  463. href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
  464. tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
  465. <a href="https://openjdk.java.net/">OpenJDK</a> and
  466. <a href="https://jdk.java.net/">Oracle JDK</a>.
  467. Although its source code is proprietary, its executable is available under the
  468. <a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
  469. Timezone Updater License Agreement</a>.</li>
  470. <li>The <a
  471. href="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
  472. SE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
  473. href="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
  474. which is freely available under a <abbr>BSD</abbr>-style license.</li>
  475. <li><a href="https://www.joda.org/joda-time/">Joda-Time &ndash; Java date
  476. and time <abbr>API</abbr></a> contains a class
  477. <code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
  478. <code><abbr>tz</abbr></code> source into a binary format. It inspired
  479. Java 8 <code>java.time</code>, which its users should migrate to once
  480. they can assume Java 8 or later. It is available under the <a
  481. href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
  482. <li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
  483. href="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
  484. are alternatives to TZUpdater. IANA Updater's license is unclear;
  485. ZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
  486. <li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
  487. time library for Android</a> and
  488. <a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date,
  489. time and interval library for Java</a> compile
  490. <code><abbr>tz</abbr></code> source into a binary format.
  491. Time4A is available under the Apache License and Time4J is
  492. available under the <a
  493. href="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
  494. General Public License (<abbr title="Lesser General Public
  495. License">LGPL</abbr>)</a>.</li>
  496. <li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
  497. Java-based libraries.</li>
  498. </ul>
  499. <li><a href="https://nodatime.org">Noda Time &ndash; Date and
  500. time <abbr>API</abbr> for .NET</a>
  501. is like Joda-Time and Time4J, but for the .NET framework instead of Java.
  502. It is freely available under the Apache License.</li>
  503. <li>Many modern
  504. <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
  505. runtimes support <code><abbr>tz</abbr></code> natively via the
  506. <samp>timeZone</samp> option of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"><samp>Intl.DateTimeFormat</samp></a>.
  507. This can be used as-is or with most of the following libraries,
  508. many of which also support runtimes lacking the <samp>timeZone</samp> option.
  509. <ul>
  510. <li>The <a
  511. href="https://github.com/formatjs/date-time-format-timezone"><samp>Intl.DateTimeFormat</samp>
  512. timezone polyfill</a>
  513. is freely available under a <abbr>BSD</abbr>-style license.</li>
  514. <li>The <a href="https://date-fns.org/">date-fns</a>
  515. library manipulates timezone-aware timestamps in browsers and
  516. in <a href="https://nodejs.org/en/">Node.js</a>.
  517. It is freely available under the <abbr>MIT</abbr> license.</li>
  518. <li><a href="https://github.com/iamkun/dayjs">Day.js</a> is a
  519. minimalist replacement for the date and time API of
  520. the <a href="https://momentjs.com/docs/">now-legacy Moment.js</a> date
  521. manipulation library.
  522. It is freely available under the <abbr>MIT</abbr> license.</li>
  523. <li><a href="https://moment.github.io/luxon/">Luxon</a> improves
  524. timezone support for the <samp>Intl</samp> API.
  525. It is freely available under the <abbr>MIT</abbr> license.</li>
  526. <li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
  527. Moment.js plugin.
  528. It is freely available under the <abbr>MIT</abbr> license.</li>
  529. <li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
  530. JavaScript library that supports date arithmetic that is time zone
  531. aware. It is freely available under the <abbr>MIT</abbr> license.</li>
  532. <li><a href="https://www.npmjs.com/package/@tubular/time">@tubular/time</a>
  533. supports live <code><abbr>tzdb</abbr></code> updates,
  534. astronomical and atomic time, a command-line interface,
  535. and full <a
  536. href="https://en.wikipedia.org/wiki/TypeScript">TypeScript</a>.
  537. Its companion <a
  538. href="https://www.npmjs.com/package/@tubular/time-tzdb">@tubular/time-tzdb</a>
  539. can generate <abbr>TZif</abbr> and other files, and a companion website
  540. <a href="https://tzexplorer.org">Timezone Database Explorer</a> lets you
  541. convert timestamps, view transition histories, and download code and data.
  542. It is freely available under the <abbr>MIT</abbr> license.</li>
  543. </ul>
  544. The proposed <a
  545. href="https://github.com/tc39/proposal-temporal"><samp>Temporal</samp>
  546. objects</a> let programs access an abstract view of
  547. <code><abbr>tzdb</abbr></code> data, and are designed to replace <a
  548. href="https://codeofmatt.com/javascript-date-type-is-horribly-broken/">JavaScript's
  549. problematic <samp>Date</samp> objects</a> when working with dates and times.
  550. <li><a href="https://github.com/JuliaTime/">JuliaTime</a> contains a
  551. compiler from <code><abbr>tz</abbr></code> source into
  552. <a href="https://julialang.org/">Julia</a>. It is freely available
  553. under the <abbr>MIT</abbr> license.</li>
  554. <li><a href="https://github.com/pavkam/tzdb"><abbr>TZDB</abbr> &ndash;
  555. <abbr>IANA</abbr> Time Zone Database for Delphi/<abbr
  556. title="Free Pascal Compiler">FPC</abbr></a>
  557. compiles from <code><abbr>tz</abbr></code> source into
  558. <a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
  559. as compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
  560. and <a
  561. href="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
  562. It is freely available under a <abbr>BSD</abbr>-style license.</li>
  563. <li><a href="http://pytz.sourceforge.net">pytz &ndash; World Timezone
  564. Definitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
  565. <a href="https://www.python.org">Python</a>.
  566. It is freely available under a <abbr>BSD</abbr>-style license.
  567. In code that can assume Python 3.6 or later it is largely superseded; see <a
  568. href="https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html">pytz:
  569. The Fastest Footgun in the West</a>.</li>
  570. <li><a href="https://tzinfo.github.io">TZInfo &ndash;
  571. Ruby Timezone Library</a>
  572. compiles <code><abbr>tz</abbr></code> source into
  573. <a href="https://www.ruby-lang.org/en/">Ruby</a>.
  574. It is freely available under the <abbr>MIT</abbr> license.</li>
  575. <li>The <a href="https://www.squeaksource.com/Chronos/">Chronos Date/Time
  576. Library</a> is
  577. a <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
  578. library that compiles <code><abbr>tz</abbr></code> source into a time
  579. zone repository whose format
  580. is either proprietary or an <abbr>XML</abbr>-encoded
  581. representation.</li>
  582. <li><a id="Tcl" href="https://tcl.tk">Tcl</a>
  583. contains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
  584. source into text files, along with a runtime that can read those
  585. files. Tcl is freely available under a <abbr>BSD</abbr>-style
  586. license.</li>
  587. </ul>
  588. </section>
  589. <section>
  590. <h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
  591. <ul>
  592. <li>The <a
  593. href="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
  594. Library</a>
  595. has an independent, thread-safe implementation of
  596. a <abbr>TZif</abbr> file reader.
  597. This library is freely available under the LGPL
  598. and is widely used in <abbr>GNU</abbr>/Linux systems.</li>
  599. <li><a href="https://www.gnome.org">GNOME</a>'s
  600. <a href="https://developer.gnome.org/glib/">GLib</a> has
  601. a <abbr>TZif</abbr> file reader written in C that
  602. creates a <code>GTimeZone</code> object representing sets
  603. of <abbr>UT</abbr> offsets.
  604. It is freely available under the <abbr>LGPL</abbr>.</li>
  605. <li>The
  606. <a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
  607. <code>baltzo::TimeZoneUtil</code> component contains a C++
  608. implementation of a <abbr>TZif</abbr> file reader. It is freely available under
  609. the Apache License.</li>
  610. <li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
  611. library that translates between <abbr>UT</abbr> and civil time and
  612. can read <abbr>TZif</abbr> files. It is freely available under the Apache
  613. License.</li>
  614. <li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
  615. library that reads <abbr>TZif</abbr> files and converts
  616. timestamps from one time zone or format to another.
  617. It is used by <a href="https://secure.php.net"><abbr
  618. title="PHP: Hypertext Preprocessor">PHP</abbr></a>,
  619. <a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
  620. and <a href="https://www.mongodb.com">MongoDB</a>.
  621. It is freely available under the <abbr>MIT</abbr> license.</li>
  622. <li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
  623. <abbr>TZif</abbr> file reader.</li>
  624. <li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
  625. DateTime::TimeZone::Tzfile</a>
  626. is a <abbr>TZif</abbr> file reader written in Perl.
  627. It is freely available under the same terms as Perl
  628. (dual <abbr>GPL</abbr> and Artistic license).</li>
  629. <li>Python has a <a id="python-zoneinfo"
  630. href="https://docs.python.org/3/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
  631. class</a> that reads <abbr>TZif</abbr> data and creates objects
  632. that represent <code><abbr>tzdb</abbr></code> timezones.
  633. Python is freely available under the
  634. <a href="https://docs.python.org/3/license.html">Python Software Foundation
  635. License</a>.
  636. A companion <a id="pypi-tzdata" href="https://pypi.org/">PyPI</a> module
  637. <a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
  638. supplies TZif data if the underlying system data cannot be found;
  639. it is freely available under the Apache License.</li>
  640. <li>The
  641. public-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
  642. library contains a Python tool that
  643. converts <abbr>TZif</abbr> data into
  644. <abbr>JSON</abbr>-format data suitable for use
  645. in its JavaScript library for time zone conversion. Dates before 1970
  646. are not supported.</li>
  647. <li>The <a
  648. href="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
  649. package contains <a href="https://www.haskell.org">Haskell</a> code that
  650. parses and uses <abbr>TZif</abbr> data. It is freely
  651. available under a <abbr>BSD</abbr>-style license.</li>
  652. </ul>
  653. </section>
  654. <section>
  655. <h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
  656. <ul>
  657. <li><a href="https://foxclocks.org">FoxClocks</a>
  658. is an extension for <a href="https://www.google.com/chrome/">Google
  659. Chrome</a> and for <a
  660. href="https://wiki.mozilla.org/Modules/Toolkit">Mozilla
  661. Toolkit</a> applications like <a
  662. href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
  663. href="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
  664. It displays multiple clocks in the application window, and has a mapping
  665. interface to <a href="https://www.google.com/earth/">Google Earth</a>.
  666. It is freely available under the <abbr>GPL</abbr>.</li>
  667. <li><a href="https://golang.org">Go programming language</a>
  668. implementations contain a copy of a 32-bit subset of a recent
  669. <code><abbr>tz</abbr></code> database in a
  670. Go-specific format.</li>
  671. <li>Microsoft Windows 8.1
  672. and later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
  673. data (mentioned <a href="#CLDR">below</a>) used by the
  674. <a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
  675. <a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
  676. <a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
  677. <a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
  678. <a id="System.TimeZoneInfo"
  679. href="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
  680. Windows Time Zones with <code>System.TimeZoneInfo</code></a> describes
  681. the older, proprietary method of Microsoft Windows 2000 and later,
  682. which stores time zone data in the
  683. <a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
  684. <a
  685. href="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone &rarr;
  686. Tzid table</a> or <a
  687. href="https://github.com/unicode-org/cldr/blob/master/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
  688. file</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
  689. to <code><abbr>tz</abbr></code> names.
  690. These mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
  691. or the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
  692. <li><a
  693. href="https://www.oracle.com/java/index.html">Oracle
  694. Java</a> contains a copy of a subset of a recent
  695. <code><abbr>tz</abbr></code> database in a
  696. Java-specific format.</li>
  697. </ul>
  698. </section>
  699. <section>
  700. <h2 id="other-dbs">Other time zone databases</h2>
  701. <ul>
  702. <li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
  703. is Astrodienst's Web version of Shanks and Pottenger's out-of-print
  704. time zone history atlases
  705. <a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
  706. <a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
  707. Although these extensive atlases
  708. <a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
  709. sources for much of the older <code><abbr>tz</abbr></code> data</a>,
  710. they are unreliable as Shanks appears to have
  711. guessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
  712. sources and do not indicate which entries are guesswork.</li>
  713. <li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
  714. its own <code>tztab</code>(4) format.</li>
  715. <li>Microsoft Windows has proprietary data mentioned
  716. <a href="#System.TimeZoneInfo">above</a>.</li>
  717. <li><a href="https://www.worldtimeserver.com">World Time Server</a>
  718. is another time zone database.</li>
  719. <li>The <a
  720. href="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
  721. Schedules Information Manual</a> of the
  722. International Air Transport Association
  723. gives current time zone rules for airports served by commercial aviation.</li>
  724. </ul>
  725. </section>
  726. <section>
  727. <h2 id="maps">Maps</h2>
  728. <ul>
  729. <li>The <a
  730. href="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
  731. and Regional Maps section</a> of <em>The World Factbook</em>, published by the
  732. <a href="https://www.cia.gov">US Central Intelligence
  733. Agency (<abbr
  734. title="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
  735. zone map; the
  736. <a
  737. href="https://legacy.lib.utexas.edu/maps/world.html">Perry&ndash;Casta&ntilde;eda
  738. Library Map Collection</a>
  739. of the University of Texas at Austin has copies of
  740. recent editions.
  741. The pictorial quality is good,
  742. but the maps do not indicate daylight saving time,
  743. and parts of the data are a few years out of date.</li>
  744. <li><a href="https://www.worldtimezone.com">World Time Zone Map
  745. with current time</a>
  746. has several fancy time zone maps; it covers Russia particularly well.
  747. The maps' pictorial quality is not quite as good as the
  748. <abbr>CIA</abbr>'s
  749. but the maps are more up to date.</li>
  750. <li><a
  751. href="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
  752. much is time wrong around the world?</a> maps the difference between
  753. mean solar and standard time, highlighting areas such as western China
  754. where the two differ greatly. It's a bit out of date, unfortunately.</li>
  755. </ul>
  756. </section>
  757. <section>
  758. <h2 id="boundaries">Time zone boundaries</h2>
  759. <p>Geographical boundaries between timezones are available
  760. from several <a
  761. href="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
  762. geolocation</a>
  763. services and other sources.</p>
  764. <ul>
  765. <li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
  766. Boundary Builder</a> extracts
  767. <a href="https://www.openstreetmap.org">Open Street Map</a> data to build
  768. boundaries of <code><abbr>tzdb</abbr></code> timezones.
  769. Its code is freely available under the <abbr>MIT</abbr> license, and
  770. its data entries are freely available under the
  771. <a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
  772. Open Database License</a>. The maps' borders appear to be quite accurate.</li>
  773. <li>Programmatic interfaces that map geographical coordinates via tz_world to
  774. <code><abbr>tzdb</abbr></code> timezones include:
  775. <ul>
  776. <li><a href="https://github.com/mj1856/GeoTimeZone">GeoTimeZone</a> is
  777. written in <a
  778. href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a>
  779. and is freely available under the <abbr>MIT</abbr> license.</li>
  780. <li>The <a href="https://github.com/bradfitz/latlong">latlong package</a>
  781. is written in Go and is freely available under the Apache License.</li>
  782. <li><a href="https://github.com/drtimcooper/LatLongToTimezone">LatLongToTimezone</a>,
  783. in both Java and
  784. <a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift</a>
  785. form, is freely available under the MIT license.</li>
  786. <li>For Node.js,
  787. the <a href="https://www.npmjs.com/package/geo-tz">geo-tz module</a>
  788. is freely available under the MIT license, and
  789. the <a href="https://www.npmjs.com/package/tz-lookup">tz-lookup module</a>
  790. is in the public domain.</li>
  791. <li>The <a
  792. href="https://github.com/MrMinimal64/timezonefinder">timezonefinder</a>
  793. library for Python is freely available under the MIT license.
  794. <li>The <a
  795. href="https://github.com/gunyarakun/timezone_finder">timezone_finder</a>
  796. library for Ruby is freely available under the MIT license.</li>
  797. </ul></li>
  798. <li>Free access via a network API, if you register a key, is provided by
  799. the <a
  800. href="https://www.geonames.org/export/web-services.html#timezone">GeoNames
  801. Timezone web service</a>, the <a
  802. href="https://developers.google.com/maps/documentation/timezone/intro">Google
  803. Maps Time Zone API</a>, and
  804. the <a href="https://timezonedb.com/api">TimeZoneDB API</a>.
  805. Commercial network API access is provided
  806. by <a href="https://askgeo.com">AskGeo</a>
  807. and <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
  808. </li>
  809. <li>"<a
  810. href="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
  811. to get a time zone from a location using latitude and longitude
  812. coordinates?</a>" discusses other geolocation possibilities.</li>
  813. <li><a href="http://statoids.com/statoids.html">Administrative
  814. Divisions of Countries ("Statoids")</a> lists
  815. political subdivision data related to time zones.</li>
  816. <li><a href="https://home.kpn.nl/vanadovv/time/Multizones.html">Time
  817. zone boundaries for multizone countries</a> summarizes legal
  818. boundaries between time zones within countries.</li>
  819. <li><a href="https://manifold.net/info/freestuff.shtml">Manifold Software
  820. &ndash; GIS and Database Tools</a> includes a Manifold-format map of
  821. world time zone boundaries distributed under the
  822. <abbr>GPL</abbr>.</li>
  823. <li>A ship within the <a
  824. href="https://en.wikipedia.org/wiki/Territorial_waters">territorial
  825. waters</a> of any nation uses that nation's time. In international
  826. waters, time zone boundaries are meridians 15&deg; apart, except that
  827. <abbr>UT</abbr>&minus;12 and <abbr>UT</abbr>+12 are each 7.5&deg;
  828. wide and are separated by
  829. the 180&deg; meridian (not by the International Date Line, which is
  830. for land and territorial waters only). A captain can change ship's
  831. clocks any time after entering a new time zone; midnight changes are
  832. common.</li>
  833. </ul>
  834. </section>
  835. <section>
  836. <h2 id="civil">Civil time concepts and history</h2>
  837. <ul>
  838. <li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
  839. Walk through Time</a>
  840. surveys the evolution of timekeeping.</li>
  841. <li>The history of daylight saving time is surveyed in <a
  842. href="http://www.webexhibits.org/daylightsaving/">About Daylight
  843. Saving Time &ndash; History, rationale, laws &amp; dates</a> and summarized in
  844. <a href="http://seizethedaylight.com/dst/">A Brief
  845. History of Daylight Saving Time</a>.</li>
  846. <li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
  847. Lords</a> discusses how authoritarians manipulate civil time.</li>
  848. <li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
  849. contains guidelines and best practices for software applications that
  850. deal with civil time.</li>
  851. <li><a href="https://www.staff.science.uu.nl/~gent0113/idl/idl.htm">A History of
  852. the International Date Line</a> tells the story of the most important
  853. time zone boundary.</li>
  854. <li><a href="http://statoids.com/tconcept.html">Basic Time
  855. Zone Concepts</a> discusses terminological issues behind time zones.</li>
  856. </ul>
  857. </section>
  858. <section>
  859. <h2 id="national">National histories of legal time</h2>
  860. <dl>
  861. <dt>Australia</dt>
  862. <dd>The Parliamentary Library commissioned a <a
  863. href="https://www.aph.gov.au/binaries/library/pubs/rp/2009-10/10rp10.pdf">research
  864. paper on daylight saving time in Australia</a>.
  865. The Bureau of Meteorology publishes a list of <a
  866. href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
  867. Dates of Daylight Savings Time within Australia</a>.</dd>
  868. <dt>Belgium</dt>
  869. <dd>The Royal Observatory of Belgium maintains a table of time in
  870. Belgium (in
  871. <a href="https://www.astro.oma.be/GENERAL/INFO/nli001a.html"
  872. hreflang="nl">Dutch</a> and <a
  873. href="https://www.astro.oma.be/GENERAL/INFO/fri001a.html"
  874. hreflang="fr">French</a>).</dd>
  875. <dt>Brazil</dt>
  876. <dd>The Time Service Department of the National Observatory
  877. records <a href="http://pcdsh01.on.br/DecHV.html"
  878. hreflang="pt-BR">Brazil's daylight saving time decrees (in
  879. Portuguese)</a>.</dd>
  880. <dt>Canada</dt>
  881. <dd>National Research Council Canada publishes current
  882. and some older information about <a
  883. href="https://nrc.canada.ca/en/certifications-evaluations-standards/canadas-official-time/time-zones-daylight-saving-time">time
  884. zones and daylight saving time</a>.</dd>
  885. <dt>Chile</dt>
  886. <dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
  887. <a href="https://www.horaoficial.cl/historia_hora.php" hreflang="es">history of
  888. Chile's official time (in Spanish)</a>.</dd>
  889. <dt>China</dt>
  890. <dd>The Hong Kong Observatory maintains a
  891. <a href="https://www.hko.gov.hk/en/gts/time/Summertime.htm">history of
  892. summer time in Hong Kong</a>,
  893. and Macau's Meteorological and Geophysical Bureau maintains a <a
  894. href="https://www.smg.gov.mo/en/subpage/224/page/174">similar
  895. history for Macau</a>.
  896. Unfortunately the latter is incomplete and has errors.</dd>
  897. <dt>Czech Republic</dt>
  898. <dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
  899. hreflang="cs">When daylight saving time starts and ends (in Czech)</a>
  900. summarizes and cites historical <abbr>DST</abbr> regulations.</dd>
  901. <dt>Germany</dt>
  902. <dd>The National Institute for Science and Technology maintains the <a
  903. href="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
  904. of Legal Time in Germany</a>.</dd>
  905. <dt>Israel</dt>
  906. <dd>The Interior Ministry periodically issues <a
  907. href="ftp://ftp.cs.huji.ac.il/pub/tz/announcements"
  908. hreflang="he">announcements (in Hebrew)</a>.</dd>
  909. <dt>Malaysia</dt>
  910. <dd>See Singapore <a href="#Singapore">below</a>.</dd>
  911. <dt>Mexico</dt>
  912. <dd>The Investigation and Analysis Service of the Mexican Library of
  913. Congress has published a <a
  914. href="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
  915. hreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
  916. <dt>Netherlands</dt>
  917. <dd><a href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm"
  918. hreflang="nl">Legal time in the Netherlands (in Dutch)</a>
  919. covers the history of local time in the Netherlands from ancient times.</dd>
  920. <dt>New Zealand</dt>
  921. <dd>The Department of Internal Affairs maintains a brief <a
  922. href="https://www.dia.govt.nz/Daylight-Saving-History">History of
  923. Daylight Saving</a>.</dd>
  924. <dt>Palestine</dt>
  925. <dd>The Ministry of Telecom and IT publishes a <a
  926. href="https://mtit.pna.ps/Site/TimeZoon"
  927. hreflang="ar">history of clock changes (in Arabic)</a>.</dd>
  928. <dt>Portugal</dt>
  929. <dd>The Lisbon Astronomical Observatory publishes a
  930. <a href="https://oal.ul.pt/hora-legal/" hreflang="pt">history of
  931. legal time (in Portuguese)</a>.</dd>
  932. <dt>Singapore</dt>
  933. <dd><a id="Singapore"
  934. href="https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html">Why
  935. is Singapore in the "Wrong" Time Zone?</a> details the
  936. history of legal time in Singapore and Malaysia.</dd>
  937. <dt>United Kingdom</dt>
  938. <dd><a
  939. href="https://www.polyomino.org.uk/british-time/">History of
  940. legal time in Britain</a> discusses in detail the country
  941. with perhaps the best-documented history of clock adjustments.</dd>
  942. <dt>United States</dt>
  943. <dd>The Department of Transportation's <a
  944. href="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
  945. Time Zone Proceedings</a> lists changes to time zone boundaries.</dd>
  946. <dt>Uruguay</dt>
  947. <dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
  948. Navy (SOHMA) publishes an annual <a
  949. href="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac
  950. (in Spanish)</a>.</dd>
  951. </dl>
  952. </section>
  953. <section>
  954. <h2 id="costs">Costs and benefits of time shifts</h2>
  955. <p>Various sources argue for and against daylight saving time and time
  956. zone shifts, and many scientific studies have been conducted. This
  957. section summarizes reviews and position statements based on
  958. scientific literature in the area.</p>
  959. <ul>
  960. <li>Carey RN, Sarma KM.
  961. <a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of
  962. daylight saving time on road traffic collision risk: a systematic
  963. review</a>.
  964. <em>BMJ Open.</em> 2017;7(6):e014319. doi:<a href="https://doi.org/10.1136/bmjopen-2016-014319">10.1136/bmjopen-2016-014319</a>.
  965. This reviews research literature and concludes that the evidence
  966. neither supports nor refutes road safety benefits from
  967. shifts in time zones.</li>
  968. <li>Havranek T, Herman D, Irsova D.
  969. <a href="https://www.iaee.org/en/publications/ejarticle.aspx?id=3051">Does
  970. daylight saving save electricity? A meta-analysis.</a>
  971. <em>Energy J.</em> 2018;39(2):35&ndash;61.
  972. doi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.thav</a>.
  973. This analyzes research literature and concludes, "Electricity savings
  974. are larger for countries farther away from the equator, while
  975. subtropical regions consume more electricity because of <abbr>DST</abbr>."</li>
  976. <li>Rishi MA, Ahmed O, Barrantes Perez JH <em>et al</em>.
  977. <a href="https://jcsm.aasm.org/doi/10.5664/jcsm.8780">Daylight saving time:
  978. an American Academy of Sleep Medicine position statement</a>.
  979. <em>J Clin Sleep Med.</em>
  980. 2020;<a href="https://doi.org/10.5664/jcsm.8780">10.5664/jcsm.8780</a>.
  981. This argues for permanent standard time due to health risks of both
  982. <abbr>DST</abbr> transitions and permanent <abbr>DST</abbr>.</li>
  983. <li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
  984. <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7205184/">Why
  985. should we abolish Daylight Saving Time?</a>
  986. <em>J Biol Rhythms</em>. 2019;34(3):227&ndash;230.
  987. doi:<a href="https://doi.org/10.1177/0748730419854197">10.1177/0748730419854197</a>.
  988. This position paper of the Society for Research on Biological Rhythms
  989. opposes DST changes and permanent DST, and advocates that governments adopt
  990. "permanent Standard Time for the health and safety of their citizens".</li>
  991. </ul>
  992. </section>
  993. <section>
  994. <h2 id="precision">Precision timekeeping</h2>
  995. <ul>
  996. <li><a
  997. href="http://leapsecond.com/hpan/an1289.pdf">The
  998. Science of Timekeeping</a> is a thorough introduction
  999. to the theory and practice of precision timekeeping.</li>
  1000. <li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
  1001. Time 2016</a> contains several freely readable papers.</li>
  1002. <li><a href="https://www.ntp.org"><abbr
  1003. title="Network Time Protocol">NTP</abbr>: The Network
  1004. Time Protocol</a> (Internet <abbr>RFC</abbr> 5905)
  1005. discusses how to synchronize clocks of
  1006. Internet hosts.</li>
  1007. <li>The <a href="https://www.usenix.org/system/files/conference/nsdi18/nsdi18-geng.pdf"><span style="font-variant: small-caps">Huygens</span></a>
  1008. family of software algorithms can achieve accuracy to a few tens of
  1009. nanoseconds in scalable server farms without special hardware.</li>
  1010. <li>The <a
  1011. href="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
  1012. Time Protocol</a> (<abbr
  1013. title="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
  1014. can achieve submicrosecond clock accuracy on a local area network
  1015. with special-purpose hardware.</li>
  1016. <li><a
  1017. href="https://datatracker.ietf.org/doc/html/rfc4833">Timezone
  1018. Options for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
  1019. (Internet <abbr>RFC</abbr> 4833)
  1020. specifies a <a
  1021. href="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
  1022. option for a server to configure
  1023. a client's time zone and daylight saving settings automatically.</li>
  1024. <li><a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
  1025. Scales</a> describes astronomical time scales like
  1026. <abbr title="Terrestrial Dynamic Time">TDT</abbr>,
  1027. <abbr title="Geocentric Coordinate Time">TCG</abbr>, and
  1028. <abbr title="Barycentric Dynamic Time">TDB</abbr>.
  1029. <li>The <a href="https://www.iau.org"><abbr
  1030. title="International Astronomical Union">IAU</abbr></a>'s <a
  1031. href="https://www.iausofa.org"><abbr
  1032. title="Standards Of Fundamental Astronomy">SOFA</abbr></a>
  1033. collection contains C and <a
  1034. href="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
  1035. code for converting among time scales like
  1036. <abbr title="International Atomic Time">TAI</abbr>,
  1037. <abbr>TDB</abbr>, <abbr>TDT</abbr> and
  1038. <abbr>UTC</abbr>. It is freely available under the
  1039. <a href="https://www.iausofa.org/tandc.html">SOFA license</a>.</li>
  1040. <li><a
  1041. href="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
  1042. &ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
  1043. diverse local time
  1044. scales used by each landed mission on Mars.</li>
  1045. <li><a href="http://leapsecond.com">LeapSecond.com</a> is
  1046. dedicated not only to leap seconds but to precise time and frequency
  1047. in general. It covers the state of the art in amateur timekeeping, and
  1048. how the art has progressed over the past few decades.</li>
  1049. <li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
  1050. href="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
  1051. and time-signal emissions</a>, International Telecommunication Union &ndash;
  1052. Radiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
  1053. <li><a
  1054. href="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
  1055. title="International Earth Rotation and Reference Systems Service">IERS</abbr>
  1056. Bulletins</a> contains official publications of the International
  1057. Earth Rotation and Reference Systems Service, which decides when leap
  1058. seconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
  1059. via an optional "<code>right</code>" configuration where a computer's internal
  1060. <code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
  1061. as opposed to the default "<code>posix</code>" configuration
  1062. where the internal clock ignores leap seconds.
  1063. The two configurations agree for timestamps starting with 1972-01-01 00:00:00
  1064. <abbr>UTC</abbr> (<code>time_t</code> 63&thinsp;072&thinsp;000) and diverge for
  1065. timestamps starting with <code>time_t</code> 78&thinsp;796&thinsp;800,
  1066. which corresponds to the first leap second
  1067. 1972-06-30 23:59:60 <abbr>UTC</abbr> in the "<code>right</code>" configuration,
  1068. and to
  1069. 1972-07-01 00:00:00 <abbr>UTC</abbr> in the "<code>posix</code>" configuration.
  1070. In practice the two configurations also agree for timestamps before
  1071. 1972 even though the historical situation is messy, partly because
  1072. neither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
  1073. is well-defined for sufficiently old timestamps.</li>
  1074. <li><a href="https://developers.google.com/time/smear">Leap Smear</a>
  1075. discusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
  1076. leap second so that they disagree with <abbr>UTC</abbr> by at most a
  1077. half second, even though every <abbr>POSIX</abbr> minute has exactly
  1078. sixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
  1079. "<code>posix</code>" configuration, is <a
  1080. href="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
  1081. the <abbr>NTP</abbr> reference implementation, <a
  1082. href="https://github.com/google/unsmear">supports</a> conversion between
  1083. <abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
  1084. cloud service providers. However, according to
  1085. <a href="https://datatracker.ietf.org/doc/html/rfc8633#section-3.7.1">&sect;3.7.1 of
  1086. Network Time Protocol Best Current Practices</a>
  1087. (Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
  1088. applications requiring accurate <abbr>UTC</abbr> or civil time,
  1089. and is intended for use only in single, well-controlled environments.</li>
  1090. <li>The <a
  1091. href="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
  1092. Second Discussion List</a> covers <a
  1093. href="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
  1094. and Klepczynski's 1999 proposal to discontinue leap seconds</a>,
  1095. discussed further in
  1096. <a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
  1097. leap second: its history and possible future</a>.
  1098. <a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
  1099. might be redefined
  1100. without Leap Seconds</a> gives pointers on this
  1101. contentious issue.
  1102. The General Conference on Weights and Measures
  1103. <a href="https://www.bipm.org/en/cgpm-2022/resolution-4">voted in 2022</a>
  1104. to discontinue the use of leap seconds by 2035, replacing them with an
  1105. as-yet-undetermined scheme some time after the year 2135.
  1106. </li>
  1107. </ul>
  1108. </section>
  1109. <section>
  1110. <h2 id="notation">Time notation</h2>
  1111. <ul>
  1112. <li>The <a id="CLDR" href="https://cldr.unicode.org">Unicode Common Locale Data
  1113. Repository (<abbr>CLDR</abbr>) Project</a> has localizations for time
  1114. zone names, abbreviations, identifiers, and formats. For example, it
  1115. contains French translations for "Eastern European Summer Time",
  1116. "<abbr title="Eastern European Summer Time">EEST</abbr>", and
  1117. "Bucharest". Its
  1118. <a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
  1119. charts</a> show these values for many locales. Data values are available in
  1120. both <abbr title="Locale Data Markup Language">LDML</abbr>
  1121. (an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
  1122. <li>
  1123. <a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
  1124. the international standard date and time notation</a> covers
  1125. <a
  1126. href="https://www.iso.org/standard/70907.html"><em><abbr
  1127. title="International Organization for Standardization">ISO</abbr>
  1128. 8601-1:2019 &ndash; Date and time &ndash; Representations for information
  1129. interchange &ndash; Part 1: Basic rules</em></a>.</li>
  1130. <li>
  1131. <a href="https://www.w3.org/TR/xmlschema/#dateTime"><abbr>XML</abbr>
  1132. Schema: Datatypes &ndash; dateTime</a> specifies a format inspired by
  1133. <abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
  1134. <li><a href="https://datatracker.ietf.org/doc/html/rfc5322#section-3.3">&sect;3.3 of
  1135. Internet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
  1136. specifies the time notation used in email and <a
  1137. href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
  1138. headers.</li>
  1139. <li>
  1140. <a href="https://datatracker.ietf.org/doc/html/rfc3339">Date and Time
  1141. on the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
  1142. specifies an <abbr>ISO</abbr> 8601
  1143. profile for use in new Internet
  1144. protocols.</li>
  1145. <li>
  1146. <a href="https://web.archive.org/web/20190130042457/https://www.hackcraft.net/web/datetime/">Date &amp; Time
  1147. Formats on the Web</a> surveys web- and Internet-oriented date and time
  1148. formats.</li>
  1149. <li>Alphabetic time zone abbreviations should not be used as unique
  1150. identifiers for <abbr>UT</abbr> offsets as they are ambiguous in
  1151. practice. For example, in English-speaking North America
  1152. "<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>,
  1153. but in China it denotes 8 hours ahead of <abbr>UT</abbr>,
  1154. and French-speaking North Americans prefer
  1155. "<abbr title="Heure Normale du Centre">HNC</abbr>" to
  1156. "<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
  1157. database contains English abbreviations for many timestamps;
  1158. unfortunately some of these abbreviations were merely the database maintainers'
  1159. inventions, and these have been removed when possible.</li>
  1160. <li>Numeric time zone abbreviations typically count hours east of
  1161. <abbr>UT</abbr>, e.g., +09 for Japan and
  1162. &minus;10 for Hawaii. However, the <abbr>POSIX</abbr>
  1163. <code><abbr>TZ</abbr></code> environment variable uses the opposite convention.
  1164. For example, one might use <code><abbr>TZ</abbr>="<abbr
  1165. title="Japan Standard Time">JST</abbr>-9"</code> and
  1166. <code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
  1167. for Japan and Hawaii, respectively. If the
  1168. <code><abbr>tz</abbr></code> database is available, it is usually better to use
  1169. settings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
  1170. <code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
  1171. confusion, handle old timestamps better, and insulate you better from
  1172. any future changes to the rules. One should never set
  1173. <abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
  1174. <code>"GMT-9"</code>, though, since this would incorrectly imply that
  1175. local time is nine hours ahead of <abbr>UT</abbr> and the time zone
  1176. is called "<abbr>GMT</abbr>".</li>
  1177. </ul>
  1178. </section>
  1179. <section>
  1180. <h2 id="see-also">See also</h2>
  1181. <ul>
  1182. <li><a href="theory.html">Theory and pragmatics of the
  1183. <code><abbr>tz</abbr></code> code and data</a></li>
  1184. <li><a href="tz-art.html">Time and the Arts</a></li>
  1185. </ul>
  1186. </section>
  1187. <footer>
  1188. <hr>
  1189. This web page is in the public domain, so clarified as of
  1190. 2009-05-17 by Arthur David Olson.
  1191. <br>
  1192. Please send corrections to this web page to the
  1193. <a href="mailto:tz@iana.org">time zone mailing list</a>.
  1194. </footer>
  1195. </body>
  1196. </html>