xref: /freebsd/contrib/tzcode/tz-link.html (revision a979394afeb5c20fc58c5f5b005d51eb8f92f666)
1bc421551SDag-Erling Smørgrav<!DOCTYPE html>
2bc421551SDag-Erling Smørgrav<html lang="en">
3bc421551SDag-Erling Smørgrav<head>
4bc421551SDag-Erling Smørgrav<title>Time zone and daylight saving time data</title>
5bc421551SDag-Erling Smørgrav<meta charset="UTF-8">
6bc421551SDag-Erling Smørgrav<style>
7bc421551SDag-Erling Smørgravpre {margin-left: 2em; white-space: pre-wrap;}
8bc421551SDag-Erling Smørgrav</style>
9bc421551SDag-Erling Smørgrav</head>
10bc421551SDag-Erling Smørgrav<body>
11bc421551SDag-Erling Smørgrav<h1>Time zone and daylight saving time data</h1>
12bc421551SDag-Erling Smørgrav<p>
13bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Time_zone">Time zone</a> and
14bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Daylight_saving_time">daylight-saving</a>
15bc421551SDag-Erling Smørgravrules are controlled by individual
16bc421551SDag-Erling Smørgravgovernments. They are sometimes changed with little notice, and their
17bc421551SDag-Erling Smørgravhistories and planned futures are often recorded only fitfully. Here
18bc421551SDag-Erling Smørgravis a summary of attempts to organize and record relevant data in this
19bc421551SDag-Erling Smørgravarea.
20bc421551SDag-Erling Smørgrav</p>
21bc421551SDag-Erling Smørgrav  <h3>Outline</h3>
22bc421551SDag-Erling Smørgrav  <nav>
23bc421551SDag-Erling Smørgrav    <ul>
24bc421551SDag-Erling Smørgrav      <li>The <code><abbr>tz</abbr></code> database product and process
25bc421551SDag-Erling Smørgrav	<ul>
26bc421551SDag-Erling Smørgrav	  <li><a href="#tzdb">The <code><abbr>tz</abbr></code> database</a></li>
27bc421551SDag-Erling Smørgrav	  <li><a href="#download">Downloading the <code><abbr>tz</abbr></code> database</a></li>
28bc421551SDag-Erling Smørgrav	  <li><a href="#changes">Changes to the <code><abbr>tz</abbr></code> database</a></li>
2975411d15SDag-Erling Smørgrav	  <li><a href="#coordinating">Coordinating with governments and distributors</a></li>
30bc421551SDag-Erling Smørgrav	  <li><a href="#commentary">Commentary on the <code><abbr>tz</abbr></code> database</a></li>
31bc421551SDag-Erling Smørgrav	</ul>
32bc421551SDag-Erling Smørgrav      </li>
33bc421551SDag-Erling Smørgrav      <li>Uses of the <code><abbr>tz</abbr></code> database
34bc421551SDag-Erling Smørgrav	<ul>
35bc421551SDag-Erling Smørgrav	  <li><a href="#web">Web sites using recent versions of the <code><abbr>tz</abbr></code> database</a></li>
36bc421551SDag-Erling Smørgrav	  <li><a href="#protocols">Network protocols for <code><abbr>tz</abbr></code> data</a></li>
37bc421551SDag-Erling Smørgrav	  <li><a href="#compilers">Other <code><abbr>tz</abbr></code> compilers</a></li>
38bc421551SDag-Erling Smørgrav	  <li><a href="#TZif">Other <abbr>TZif</abbr> readers</a></li>
39bc421551SDag-Erling Smørgrav	  <li><a href="#software">Other <code><abbr>tz</abbr></code>-based time zone software</a></li>
40bc421551SDag-Erling Smørgrav	</ul>
41bc421551SDag-Erling Smørgrav      </li>
42bc421551SDag-Erling Smørgrav      <li>Related data
43bc421551SDag-Erling Smørgrav	<ul>
44bc421551SDag-Erling Smørgrav	  <li><a href="#other-dbs">Other time zone databases</a></li>
45bc421551SDag-Erling Smørgrav	  <li><a href="#maps">Maps</a></li>
46bc421551SDag-Erling Smørgrav	  <li><a href="#boundaries">Time zone boundaries</a></li>
47bc421551SDag-Erling Smørgrav	</ul>
48bc421551SDag-Erling Smørgrav      </li>
49bc421551SDag-Erling Smørgrav      <li>Timekeeping concepts
50bc421551SDag-Erling Smørgrav	<ul>
51bc421551SDag-Erling Smørgrav	  <li><a href="#civil">Civil time concepts and history</a></li>
52bc421551SDag-Erling Smørgrav	  <li><a href="#national">National histories of legal time</a></li>
53bc421551SDag-Erling Smørgrav	  <li><a href="#costs">Costs and benefits of time shifts</a></li>
54bc421551SDag-Erling Smørgrav	  <li><a href="#precision">Precision timekeeping</a></li>
55bc421551SDag-Erling Smørgrav	  <li><a href="#notation">Time notation</a></li>
56bc421551SDag-Erling Smørgrav	</ul>
57bc421551SDag-Erling Smørgrav      </li>
58bc421551SDag-Erling Smørgrav      <li><a href="#see-also">See also</a></li>
59bc421551SDag-Erling Smørgrav    </ul>
60bc421551SDag-Erling Smørgrav  </nav>
61bc421551SDag-Erling Smørgrav
62bc421551SDag-Erling Smørgrav<section>
63bc421551SDag-Erling Smørgrav<h2 id="tzdb">The <code><abbr title="time zone">tz</abbr></code> database</h2>
64bc421551SDag-Erling Smørgrav<p>
65bc421551SDag-Erling SmørgravThe <a href="https://en.wikipedia.org/wiki/Public_domain">public-domain</a>
66bc421551SDag-Erling Smørgravtime zone database contains code and data
67bc421551SDag-Erling Smørgravthat represent the history of local time
68bc421551SDag-Erling Smørgravfor many representative locations around the globe.
69bc421551SDag-Erling SmørgravIt is updated periodically to reflect changes made by political bodies
70bc421551SDag-Erling Smørgravto time zone boundaries and daylight saving rules.
71bc421551SDag-Erling SmørgravThis database (known as <code><abbr>tz</abbr></code>,
72bc421551SDag-Erling Smørgrav<code><abbr>tzdb</abbr></code>, or <code>zoneinfo</code>)
73bc421551SDag-Erling Smørgravis used by several implementations,
74bc421551SDag-Erling Smørgravincluding
75bc421551SDag-Erling Smørgrav<a href="https://www.gnu.org/software/libc/">the
76bc421551SDag-Erling Smørgrav<abbr title="GNU's Not Unix">GNU</abbr>
77bc421551SDag-Erling SmørgravC Library</a> (used in
78bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Linux"><abbr>GNU</abbr>/Linux</a>),
79bc421551SDag-Erling Smørgrav<a href="https://www.android.com">Android</a>,
80bc421551SDag-Erling Smørgrav<a href="https://www.freebsd.org">Free<abbr
81bc421551SDag-Erling Smørgravtitle="Berkeley Software Distribution">BSD</abbr></a>,
82bc421551SDag-Erling Smørgrav<a href="https://netbsd.org">Net<abbr>BSD</abbr></a>,
83bc421551SDag-Erling Smørgrav<a href="https://www.openbsd.org">Open<abbr>BSD</abbr></a>,
84bc421551SDag-Erling Smørgrav<a href="https://www.chromium.org/chromium-os/">ChromiumOS</a>,
85bc421551SDag-Erling Smørgrav<a href="https://cygwin.com">Cygwin</a>,
86bc421551SDag-Erling Smørgrav<a href="https://mariadb.org">MariaDB</a>,
87bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/MINIX">MINIX</a>,
88*a979394aSDag-Erling Smørgrav<a href="https://musl.libc.org">musl libc</a>,
89bc421551SDag-Erling Smørgrav<a href="https://www.mysql.com">MySQL</a>,
90bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/WebOS"><abbr
91bc421551SDag-Erling Smørgravtitle="Web Operating System">webOS</abbr></a>,
92bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/IBM_AIX"><abbr
93bc421551SDag-Erling Smørgravtitle="Advanced Interactive eXecutive">AIX</abbr></a>,
94bc421551SDag-Erling Smørgrav<a href="https://www.apple.com/ios"><abbr
95bc421551SDag-Erling Smørgravtitle="iPhone OS">iOS</abbr></a>,
96bc421551SDag-Erling Smørgrav<a href="https://www.apple.com/macos">macOS</a>,
97bc421551SDag-Erling Smørgrav<a href="https://www.microsoft.com/en-us/windows">Microsoft Windows</a>,
98bc421551SDag-Erling Smørgrav<a href="https://www.vmssoftware.com">Open<abbr
99bc421551SDag-Erling Smørgravtitle="Virtual Memory System">VMS</abbr></a>,
100bc421551SDag-Erling Smørgrav<a href="https://www.oracle.com/database/">Oracle Database</a>, and
101bc421551SDag-Erling Smørgrav<a href="https://www.oracle.com/solaris">Oracle Solaris</a>.</p>
102bc421551SDag-Erling Smørgrav<p>
103bc421551SDag-Erling SmørgravEach main entry in the database represents a <dfn>timezone</dfn>
104bc421551SDag-Erling Smørgravfor a set of civil-time clocks that have all agreed since 1970.
105bc421551SDag-Erling SmørgravTimezones are typically identified by continent or ocean and then by the
106bc421551SDag-Erling Smørgravname of the largest city within the region containing the clocks.
107bc421551SDag-Erling SmørgravFor example, <code>America/New_York</code>
108bc421551SDag-Erling Smørgravrepresents most of the <abbr title="United States">US</abbr> eastern time zone;
109bc421551SDag-Erling Smørgrav<code>America/Phoenix</code> represents most of Arizona, which
110bc421551SDag-Erling Smørgravuses mountain time without daylight saving time (<abbr>DST</abbr>);
111bc421551SDag-Erling Smørgrav<code>America/Detroit</code> represents most of Michigan, which uses
112bc421551SDag-Erling Smørgraveastern time but with different <abbr>DST</abbr> rules in 1975;
113bc421551SDag-Erling Smørgravand other entries represent smaller regions like Starke County,
114bc421551SDag-Erling SmørgravIndiana, which switched from central to eastern time in 1991
115bc421551SDag-Erling Smørgravand switched back in 2006.
116*a979394aSDag-Erling SmørgravTo use the database on a <a
117bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/POSIX"><abbr
118*a979394aSDag-Erling Smørgravtitle="Portable Operating System Interface">POSIX</abbr>.1-2024</a>
119bc421551SDag-Erling Smørgravimplementation set the <code><abbr>TZ</abbr></code>
120bc421551SDag-Erling Smørgravenvironment variable to the location's full name,
121bc421551SDag-Erling Smørgrave.g., <code><abbr>TZ</abbr>="America/New_York"</code>.</p>
122bc421551SDag-Erling Smørgrav<p>
123bc421551SDag-Erling SmørgravAssociated with each timezone is a history of offsets from
124bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Universal_Time">Universal
125bc421551SDag-Erling SmørgravTime</a> (<abbr>UT</abbr>), which is <a
126bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Greenwich_Mean_Time">Greenwich Mean
127bc421551SDag-Erling SmørgravTime</a> (<abbr>GMT</abbr>) with days beginning at midnight;
128bc421551SDag-Erling Smørgravfor timestamps after 1960 this is more precisely <a
129bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated
130bc421551SDag-Erling SmørgravUniversal Time</a> (<abbr>UTC</abbr>).
131bc421551SDag-Erling SmørgravThe database also records when daylight saving time was in use,
132bc421551SDag-Erling Smørgravalong with some time zone abbreviations such as <abbr>EST</abbr>
133bc421551SDag-Erling Smørgravfor Eastern Standard Time in the <abbr>US</abbr>.</p>
134bc421551SDag-Erling Smørgrav</section>
135bc421551SDag-Erling Smørgrav
136bc421551SDag-Erling Smørgrav<section>
137bc421551SDag-Erling Smørgrav<h2 id="download">Downloading the <code><abbr>tz</abbr></code> database</h2>
138bc421551SDag-Erling Smørgrav<p>
139bc421551SDag-Erling SmørgravThe following <a
140bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Unix_shell">shell</a> commands download
141bc421551SDag-Erling Smørgravthe latest release's two
142bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Tar_(computing)">tarballs</a>
143bc421551SDag-Erling Smørgravto a <abbr>GNU</abbr>/Linux or similar host.</p>
144bc421551SDag-Erling Smørgrav<pre><code>mkdir tzdb
145bc421551SDag-Erling Smørgravcd tzdb
146bc421551SDag-Erling Smørgrav<a href="https://www.gnu.org/software/wget/">wget</a> https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz
147bc421551SDag-Erling Smørgravwget https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
148bc421551SDag-Erling Smørgrav<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 -
149bc421551SDag-Erling Smørgravgzip -dc tzdata-latest.tar.gz | tar -xf -
150bc421551SDag-Erling Smørgrav</code></pre>
151bc421551SDag-Erling Smørgrav<p>Alternatively, the following shell commands download the same
152bc421551SDag-Erling Smørgravrelease in a single-tarball format containing extra data
153bc421551SDag-Erling Smørgravuseful for regression testing:</p>
154bc421551SDag-Erling Smørgrav<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>
155bc421551SDag-Erling Smørgrav<a href="https://www.nongnu.org/lzip/">lzip</a> -dc tzdb-latest.tar.lz | tar -xf -
156bc421551SDag-Erling Smørgrav</code></pre>
157bc421551SDag-Erling Smørgrav<p>These commands use convenience links to the latest release
158bc421551SDag-Erling Smørgravof the <code><abbr>tz</abbr></code> database hosted by the
159bc421551SDag-Erling Smørgrav<a href="https://www.iana.org/time-zones">Time Zone Database website</a>
160bc421551SDag-Erling Smørgravof the <a href="https://www.iana.org">Internet Assigned Numbers
161bc421551SDag-Erling SmørgravAuthority (IANA)</a>.
162bc421551SDag-Erling SmørgravOlder releases are in files named
163bc421551SDag-Erling Smørgrav<code>tzcode<var>V</var>.tar.gz</code>,
164bc421551SDag-Erling Smørgrav<code>tzdata<var>V</var>.tar.gz</code>, and
165bc421551SDag-Erling Smørgrav<code>tzdb-<var>V</var>.tar.lz</code>,
166bc421551SDag-Erling Smørgravwhere <code><var>V</var></code> is the version.
167bc421551SDag-Erling SmørgravSince 1996, each version has been a four-digit year followed by
168bc421551SDag-Erling Smørgravlower-case letter (<samp>a</samp> through <samp>z</samp>,
169bc421551SDag-Erling Smørgravthen <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp>
170bc421551SDag-Erling Smørgravthrough <samp>zzz</samp>, and so on).
171bc421551SDag-Erling SmørgravSince version 2022a, each release has been distributed in
172bc421551SDag-Erling Smørgrav<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06">POSIX
173bc421551SDag-Erling Smørgravustar interchange format</a>, compressed as described above;
17475411d15SDag-Erling Smørgravolder releases use a nearly compatible format.
175bc421551SDag-Erling SmørgravSince version 2016h, each release has contained a text file named
17646c59934SDag-Erling Smørgrav"<code>version</code>" whose first (and currently only) line is the version.
177bc421551SDag-Erling SmørgravOlder releases are <a href="https://ftp.iana.org/tz/releases/">archived</a>,
178bc421551SDag-Erling Smørgravand are also available in an
179bc421551SDag-Erling Smørgrav<a href="ftp://ftp.iana.org/tz/releases/"><abbr
180bc421551SDag-Erling Smørgravtitle="File Transfer Protocol">FTP</abbr> directory</a> via a
18175411d15SDag-Erling Smørgravless secure protocol.</p>
182bc421551SDag-Erling Smørgrav<p>Alternatively, a development repository of code and data can be
183bc421551SDag-Erling Smørgravretrieved from <a href="https://github.com">GitHub</a> via the shell
184bc421551SDag-Erling Smørgravcommand:</p>
185bc421551SDag-Erling Smørgrav<pre><code><a href="https://git-scm.com">git</a> clone <a href="https://github.com/eggert/tz">https://github.com/eggert/tz</a>
186bc421551SDag-Erling Smørgrav</code></pre>
187bc421551SDag-Erling Smørgrav<p>
188bc421551SDag-Erling SmørgravSince version 2012e, each release has been tagged in development repositories.
189bc421551SDag-Erling SmørgravUntagged commits are less well tested and probably contain
190bc421551SDag-Erling Smørgravmore errors.</p>
191bc421551SDag-Erling Smørgrav<p>
192bc421551SDag-Erling SmørgravAfter obtaining the code and data files, see the
193bc421551SDag-Erling Smørgrav<code>README</code> file for what to do next.
194bc421551SDag-Erling SmørgravThe code lets you compile the <code><abbr>tz</abbr></code> source files into
195bc421551SDag-Erling Smørgravmachine-readable binary files, one for each location. The binary files
196*a979394aSDag-Erling Smørgravare in a special format specified by
197*a979394aSDag-Erling Smørgrav<a href="https://datatracker.ietf.org/doc/html/8536">The
198*a979394aSDag-Erling SmørgravTime Zone Information Format (<abbr>TZif</abbr>)</a>
199*a979394aSDag-Erling Smørgrav(Internet <abbr title="Request For Comments">RFC</abbr> 8536).
200bc421551SDag-Erling SmørgravThe code also lets
201bc421551SDag-Erling Smørgravyou read a <abbr>TZif</abbr> file and interpret timestamps for that
202bc421551SDag-Erling Smørgravlocation.</p>
203bc421551SDag-Erling Smørgrav</section>
204bc421551SDag-Erling Smørgrav
205bc421551SDag-Erling Smørgrav<section>
206bc421551SDag-Erling Smørgrav<h2 id="changes">Changes to the <code><abbr>tz</abbr></code> database</h2>
207bc421551SDag-Erling Smørgrav<p>
208bc421551SDag-Erling SmørgravThe <code><abbr>tz</abbr></code> code and data
209bc421551SDag-Erling Smørgravare by no means authoritative. If you find errors, please
210*a979394aSDag-Erling Smørgravemail changes to <a href="mailto:tz@iana.org"><code>tz@iana.org</code></a>,
211*a979394aSDag-Erling Smørgravthe time zone mailing list. See
212*a979394aSDag-Erling Smørgrav<a href="https://lists.iana.org/postorius/lists/tz.iana.org/">the mailing
213*a979394aSDag-Erling Smørgravlist's main page</a> to subscribe or to browse its archive of old messages.
214*a979394aSDag-Erling Smørgrav<a href="https://tzdata-meta.timtimeonline.com">Metadata for mailing list
215bc421551SDag-Erling Smørgravdiscussions</a> and corresponding data changes can be
216bc421551SDag-Erling Smørgravgenerated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>.
217bc421551SDag-Erling Smørgrav</p>
218bc421551SDag-Erling Smørgrav<p>
219bc421551SDag-Erling SmørgravChanges to the <code><abbr>tz</abbr></code> code and data are often
220bc421551SDag-Erling Smørgravpropagated to clients via operating system updates, so
221bc421551SDag-Erling Smørgravclient <code><abbr>tz</abbr></code> data can often be corrected by
222bc421551SDag-Erling Smørgravapplying these updates. With GNU/Linux and similar systems, if your
223bc421551SDag-Erling Smørgravmaintenance provider has not yet adopted the
224bc421551SDag-Erling Smørgravlatest <code><abbr>tz</abbr></code> data, you can often short-circuit
225bc421551SDag-Erling Smørgravthe process by tailoring the generic instructions in
226bc421551SDag-Erling Smørgravthe <code><abbr>tz</abbr> README</code> file and installing the latest
227bc421551SDag-Erling Smørgravdata yourself. System-specific instructions for installing the
228bc421551SDag-Erling Smørgravlatest <code><abbr>tz</abbr></code> data have also been published
229*a979394aSDag-Erling Smørgravfor <a href="https://www.ibm.com/support/pages/aix-time-zone-olson-tzdata-updates"><abbr>AIX</abbr></a>,
230bc421551SDag-Erling Smørgrav<a
231bc421551SDag-Erling Smørgravhref="https://source.android.com/devices/tech/config/timezone-rules">Android</a>,
232bc421551SDag-Erling Smørgrav<a
233bc421551SDag-Erling Smørgravhref="https://unicode-org.github.io/icu/userguide/datetime/timezone/"><abbr
234bc421551SDag-Erling Smørgravtitle="International Components for Unicode">ICU</abbr></a>,
235bc421551SDag-Erling Smørgrav<a href="https://www.ibm.com/support/pages/java-sdk-time-zone-update-utility"><abbr>IBM</abbr>
236bc421551SDag-Erling SmørgravJDK</a>,
237bc421551SDag-Erling Smørgrav<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a
238bc421551SDag-Erling Smørgravhref="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>,
239bc421551SDag-Erling Smørgrav<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a
240bc421551SDag-Erling Smørgravhref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">OpenJDK/Oracle JDK</a>.
241bc421551SDag-Erling Smørgrav</p>
242bc421551SDag-Erling Smørgrav<p>Since version 2013a,
243bc421551SDag-Erling Smørgravsources for the <code><abbr>tz</abbr></code> database have been
244bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/UTF-8"><abbr
245bc421551SDag-Erling Smørgravtitle="Unicode Transformation Format 8-bit">UTF-8</abbr></a>
246bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Text_file">text files</a>
247bc421551SDag-Erling Smørgravwith lines terminated by <a href="https://en.wikipedia.org/wiki/Newline"><abbr
248bc421551SDag-Erling Smørgravtitle="linefeed">LF</abbr></a>,
249bc421551SDag-Erling Smørgravwhich can be modified by common text editors such
250bc421551SDag-Erling Smørgravas <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>,
251*a979394aSDag-Erling Smørgrav<a href="https://gedit-technology.github.io/apps/gedit/">gedit</a>, and
252bc421551SDag-Erling Smørgrav<a href="https://www.vim.org">vim</a>.
253bc421551SDag-Erling SmørgravSpecialized source-file editing can be done via the
254bc421551SDag-Erling Smørgrav<a href="https://packagecontrol.io/packages/zoneinfo">Sublime
255bc421551SDag-Erling Smørgravzoneinfo</a> package for <a
256bc421551SDag-Erling Smørgravhref="https://www.sublimetext.com">Sublime Text</a> and the <a
257bc421551SDag-Erling Smørgravhref="https://marketplace.visualstudio.com/items?itemName=gilmoreorless.vscode-zoneinfo">VSCode
258bc421551SDag-Erling Smørgravzoneinfo</a> extension for <a href="https://code.visualstudio.com">Visual
259bc421551SDag-Erling SmørgravStudio Code</a>.
260bc421551SDag-Erling Smørgrav</p>
261bc421551SDag-Erling Smørgrav<p>
262bc421551SDag-Erling SmørgravFor further information about updates, please see
263bc421551SDag-Erling Smørgrav<a href="https://datatracker.ietf.org/doc/html/rfc6557">Procedures for
264*a979394aSDag-Erling SmørgravMaintaining the Time Zone Database</a> (Internet <abbr>RFC</abbr> 6557).
265*a979394aSDag-Erling SmørgravMore detail can be
266bc421551SDag-Erling Smørgravfound in <a href="theory.html">Theory and pragmatics of the
267bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> code and data</a>.
268bc421551SDag-Erling Smørgrav<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
269bc421551SDag-Erling Smørgravdisplays changes between recent <code><abbr>tzdb</abbr></code> versions.
270bc421551SDag-Erling Smørgrav</p>
271bc421551SDag-Erling Smørgrav</section>
272bc421551SDag-Erling Smørgrav
273bc421551SDag-Erling Smørgrav<section>
27475411d15SDag-Erling Smørgrav<h2 id="coordinating">Coordinating with governments and distributors</h2>
27575411d15SDag-Erling Smørgrav<p>
27675411d15SDag-Erling SmørgravAs discussed in
27775411d15SDag-Erling Smørgrav"<a href="https://www.icann.org/en/blogs/details/how-time-zones-are-coordinated-13-03-2023-en">How
27875411d15SDag-Erling SmørgravTime Zones Are Coordinated</a>", the time zone database relies on
27975411d15SDag-Erling Smørgravcollaboration among governments, the time zone database volunteer
28075411d15SDag-Erling Smørgravcommunity, and data distributors downstream.
28175411d15SDag-Erling Smørgrav<p>
28275411d15SDag-Erling SmørgravIf your government plans to change its time zone boundaries or
28375411d15SDag-Erling Smørgravdaylight saving rules, please send email to <a
28475411d15SDag-Erling Smørgravhref="mailto:tz@iana.org"><code>tz@iana.org</code></a> well in advance,
28575411d15SDag-Erling Smørgravas this will lessen confusion and will coordinate updates to many cell phones,
28675411d15SDag-Erling Smørgravcomputers, and other devices around the world.
28775411d15SDag-Erling SmørgravIn your email, please cite the legislation or regulation that specifies
28875411d15SDag-Erling Smørgravthe change, so that it can be checked for details such as the exact times
28975411d15SDag-Erling Smørgravwhen clock transitions occur.
29075411d15SDag-Erling SmørgravIt is OK if a rule change is planned to affect clocks
29175411d15SDag-Erling Smørgravfar into the future, as a long-planned change can easily be reverted
29275411d15SDag-Erling Smørgravor otherwise altered with a year's notice before the change would have
29375411d15SDag-Erling Smørgravaffected clocks.</p>
29475411d15SDag-Erling Smørgrav<p>
29575411d15SDag-Erling SmørgravThere is no fixed schedule for <code><abbr>tzdb</abbr></code> releases.
29675411d15SDag-Erling SmørgravHowever, typically a release occurs every few months.
29775411d15SDag-Erling SmørgravMany downstream timezone data distributors wait for
29875411d15SDag-Erling Smørgrava <code><abbr>tzdb</abbr></code> release before they produce an update
29975411d15SDag-Erling Smørgravto time zone behavior in consumer devices and software products.
30075411d15SDag-Erling SmørgravAfter a release, various parties must integrate, test,
30175411d15SDag-Erling Smørgravand roll out an update before <a
30275411d15SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/End_user">end users</a> see changes.
30375411d15SDag-Erling SmørgravThese updates can be expensive, for both the <a
30475411d15SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Quality_assurance">quality
30575411d15SDag-Erling Smørgravassurance</a> process and the overall cost of shipping and installing
30675411d15SDag-Erling Smørgravupdates to each device's copy of <code><abbr>tzdb</abbr></code>.
30775411d15SDag-Erling SmørgravUpdates may be batched with other updates and may take substantial
30875411d15SDag-Erling Smørgravtime to reach end users after a release.
30975411d15SDag-Erling SmørgravOlder devices may no longer be supported and thus may never be updated,
31075411d15SDag-Erling Smørgravwhich means they will continue to use out-of-date rules.</p>
31175411d15SDag-Erling Smørgrav<p>
31275411d15SDag-Erling SmørgravFor these reasons any rule change should be promulgated at least a
31375411d15SDag-Erling Smørgravyear before it affects how clocks operate; otherwise, there is a good
31475411d15SDag-Erling Smørgravchance that many clocks will be wrong due to delays in propagating updates,
31575411d15SDag-Erling Smørgravand that residents will be confused or even actively resist the change.
31675411d15SDag-Erling SmørgravThe shorter the notice, the more likely clock problems will arise; see "<a
31775411d15SDag-Erling Smørgravhref="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On
31875411d15SDag-Erling Smørgravthe Timing of Time Zone Changes</a>" for examples.
31975411d15SDag-Erling Smørgrav</p>
32075411d15SDag-Erling Smørgrav</section>
32175411d15SDag-Erling Smørgrav
32275411d15SDag-Erling Smørgrav<section>
323bc421551SDag-Erling Smørgrav<h2 id="commentary">Commentary on the <code><abbr>tz</abbr></code> database</h2>
324bc421551SDag-Erling Smørgrav<ul>
325bc421551SDag-Erling Smørgrav<li>The article
326bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Tz_database">tz database</a> is
327bc421551SDag-Erling Smørgravan encyclopedic summary.</li>
328bc421551SDag-Erling Smørgrav<li><a href="tz-how-to.html">How to Read the
329bc421551SDag-Erling Smørgravtz Database Source Files</a> explains the <code><abbr>tz</abbr></code>
330bc421551SDag-Erling Smørgravdatabase format.</li>
331bc421551SDag-Erling Smørgrav<li><a
332bc421551SDag-Erling Smørgravhref="https://blog.jonudell.net/2009/10/23/a-literary-appreciation-of-the-olsonzoneinfotz-database/">A
333bc421551SDag-Erling Smørgravliterary appreciation of the Olson/Zoneinfo/tz database</a> comments on the
334bc421551SDag-Erling Smørgravdatabase's style.</li>
335bc421551SDag-Erling Smørgrav<li><a href="https://doi.org/10.1145/3340301.3341125">What time is it:
336bc421551SDag-Erling Smørgravmanaging time in the internet</a> analyzes the database longitudinally.</li>
337bc421551SDag-Erling Smørgrav</ul>
338bc421551SDag-Erling Smørgrav</section>
339bc421551SDag-Erling Smørgrav
340bc421551SDag-Erling Smørgrav<section>
341bc421551SDag-Erling Smørgrav<h2 id="web">Web sites using recent versions of the
342bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> database</h2>
343bc421551SDag-Erling Smørgrav<p>
344bc421551SDag-Erling SmørgravThese are listed roughly in ascending order of complexity and fanciness.
345bc421551SDag-Erling Smørgrav</p>
346bc421551SDag-Erling Smørgrav<ul>
347bc421551SDag-Erling Smørgrav<li><a href="https://time.is">Time.is</a> shows locations'
348bc421551SDag-Erling Smørgravtime and zones.</li>
349bc421551SDag-Erling Smørgrav<li><a href="https://www.timejones.com">TimeJones.com</a>,
350bc421551SDag-Erling Smørgrav<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
351bc421551SDag-Erling Smørgrav<a href="https://www.worldclock.com">The World Clock</a>
352bc421551SDag-Erling Smørgravare time zone converters.</li>
353bc421551SDag-Erling Smørgrav<li><a href="https://timezonedb.com/download">TimeZoneDB Database</a>
354bc421551SDag-Erling Smørgravpublishes <code><abbr>tzdb</abbr></code>-derived data in
355bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr
356bc421551SDag-Erling Smørgravtitle="comma-separated values">CSV</abbr></a> and
357bc421551SDag-Erling Smørgravin <a href="https://en.wikipedia.org/wiki/SQL"><abbr
358bc421551SDag-Erling Smørgravtitle="Structured Query Language">SQL</abbr></a> form.</li>
359bc421551SDag-Erling Smørgrav<li><a
360bc421551SDag-Erling Smørgravhref="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
361bc421551SDag-Erling Smørgravlets you see the <code><abbr>TZ</abbr></code> values directly.</li>
362bc421551SDag-Erling Smørgrav<li><a
363bc421551SDag-Erling Smørgravhref="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
364bc421551SDag-Erling SmørgravTime in 1000 Places</a> uses descriptions of the values.</li>
365bc421551SDag-Erling Smørgrav<li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
366bc421551SDag-Erling SmørgravWorldwide</a> lets you sort zone names and convert times.</li>
367bc421551SDag-Erling Smørgrav<li><a href="https://24timezones.com">24TimeZones</a> has a world
368bc421551SDag-Erling Smørgravtime map and a time converter.</li>
369bc421551SDag-Erling Smørgrav<li><a href="https://www.zeitverschiebung.net/en/">Time Difference</a>
370bc421551SDag-Erling Smørgravcalculates the current time difference between locations.</li>
371bc421551SDag-Erling Smørgrav<li><a href="https://www.wx-now.com">Weather Now</a> and
372bc421551SDag-Erling Smørgrav<a href="https://www.thetimenow.com">The Time Now</a> list the weather too.</li>
373bc421551SDag-Erling Smørgrav</ul>
374bc421551SDag-Erling Smørgrav</section>
375bc421551SDag-Erling Smørgrav
376bc421551SDag-Erling Smørgrav<section>
377bc421551SDag-Erling Smørgrav<h2 id="protocols">Network protocols for <code><abbr>tz</abbr></code> data</h2>
378bc421551SDag-Erling Smørgrav<ul>
379bc421551SDag-Erling Smørgrav<li>The <a href="https://www.ietf.org">Internet Engineering Task Force</a>'s
380bc421551SDag-Erling Smørgrav<a href="https://datatracker.ietf.org/wg/tzdist/charter/">Time Zone Data
381bc421551SDag-Erling SmørgravDistribution Service (tzdist) working group</a> defined <a
382bc421551SDag-Erling Smørgravhref="https://datatracker.ietf.org/doc/html/rfc7808">TZDIST</a>
383bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 7808), a time zone data distribution service,
384bc421551SDag-Erling Smørgravalong with <a href="https://datatracker.ietf.org/doc/html/rfc7809">CalDAV</a>
385bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 7809), a calendar access protocol for
386bc421551SDag-Erling Smørgravtransferring time zone data by reference.
387bc421551SDag-Erling Smørgrav<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST
388bc421551SDag-Erling Smørgravimplementations</a> are available.
389bc421551SDag-Erling SmørgravThe <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis
390bc421551SDag-Erling Smørgravmailing list</a> discusses possible extensions.</li>
391bc421551SDag-Erling Smørgrav<li>The <a href="https://datatracker.ietf.org/doc/html/rfc5545">
392bc421551SDag-Erling SmørgravInternet Calendaring and Scheduling Core Object Specification
393bc421551SDag-Erling Smørgrav(iCalendar)</a> (Internet <abbr>RFC</abbr> 5445)
394bc421551SDag-Erling Smørgravcovers time zone
395bc421551SDag-Erling Smørgravdata; see its VTIMEZONE calendar component.
396bc421551SDag-Erling SmørgravThe iCalendar format requires specialized parsers and generators; a
397bc421551SDag-Erling Smørgravvariant <a href="https://datatracker.ietf.org/doc/html/rfc6321">xCal</a>
398bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 6321) uses
399bc421551SDag-Erling Smørgrav<a href="https://www.w3.org/XML/"><abbr
400bc421551SDag-Erling Smørgravtitle="Extensible Markup Language">XML</abbr></a> format, and a variant
401bc421551SDag-Erling Smørgrav<a href="https://datatracker.ietf.org/doc/html/rfc7265">jCal</a>
402bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 7265)
403*a979394aSDag-Erling Smørgravuses <a href="https://www.json.org/json-en.html"><abbr
404bc421551SDag-Erling Smørgravtitle="JavaScript Object Notation">JSON</abbr></a> format.</li>
405bc421551SDag-Erling Smørgrav</ul>
406bc421551SDag-Erling Smørgrav</section>
407bc421551SDag-Erling Smørgrav
408bc421551SDag-Erling Smørgrav<section>
409bc421551SDag-Erling Smørgrav<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
410bc421551SDag-Erling Smørgrav<p>Although some of these do not fully support
411bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
412bc421551SDag-Erling Smørgravdistributions you can generally work around compatibility problems by
413bc421551SDag-Erling Smørgravrunning the command <code>make rearguard_tarballs</code> and compiling
414bc421551SDag-Erling Smørgravfrom the resulting tarballs instead.</p>
415bc421551SDag-Erling Smørgrav<ul>
416*a979394aSDag-Erling Smørgrav<li><a href="https://github.com/libical/vzic">Vzic</a> is a <a
41775411d15SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>
418bc421551SDag-Erling Smørgravprogram that compiles
419bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
420bc421551SDag-Erling SmørgravVzic is freely
421bc421551SDag-Erling Smørgravavailable under the <a
422bc421551SDag-Erling Smørgravhref="https://www.gnu.org/copyleft/gpl.html"><abbr>GNU</abbr>
423bc421551SDag-Erling SmørgravGeneral Public License (<abbr
424bc421551SDag-Erling Smørgravtitle="General Public License">GPL</abbr>)</a>.</li>
425bc421551SDag-Erling Smørgrav<li><a href="https://sourceforge.net/projects/tzical/">tziCal &ndash; tz
426bc421551SDag-Erling Smørgravdatabase conversion utility</a> is like Vzic, except for the <a
427bc421551SDag-Erling Smørgravhref="https://dotnet.microsoft.com">.NET framework</a>
428bc421551SDag-Erling Smørgravand with a <abbr>BSD</abbr>-style license.</li>
429bc421551SDag-Erling Smørgrav<li><a
430bc421551SDag-Erling Smørgravhref="https://metacpan.org/release/DateTime-TimeZone">DateTime::TimeZone</a>
431bc421551SDag-Erling Smørgravcontains a script <code>parse_olson</code> that compiles
432bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> source into <a href="https://www.perl.org">Perl</a>
433bc421551SDag-Erling Smørgravmodules. It is part of the Perl <a
434bc421551SDag-Erling Smørgravhref="https://github.com/houseabsolute/DateTime.pm/wiki">DateTime Project</a>,
435bc421551SDag-Erling Smørgravwhich is freely
436bc421551SDag-Erling Smørgravavailable under both the <abbr>GPL</abbr> and the Perl Artistic
437bc421551SDag-Erling SmørgravLicense. DateTime::TimeZone also contains a script
438bc421551SDag-Erling Smørgrav<code>tests_from_zdump</code> that generates test cases for each clock
439bc421551SDag-Erling Smørgravtransition in the <code><abbr>tz</abbr></code> database.</li>
440bc421551SDag-Erling Smørgrav<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
441bc421551SDag-Erling SmørgravDatabase Parser</a> is a
44275411d15SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/C++">C++</a> parser and
443*a979394aSDag-Erling Smørgravruntime library with a <a
444*a979394aSDag-Erling Smørgravhref="https://en.cppreference.com/w/cpp/chrono"><code>std::chrono</code> API</a>
445*a979394aSDag-Erling Smørgravthat is a standard part of C++.
446bc421551SDag-Erling SmørgravIt is freely available under the
447bc421551SDag-Erling Smørgrav<abbr title="Massachusetts Institute of Technology">MIT</abbr> license.</li>
448bc421551SDag-Erling Smørgrav<li><a id="ICU" href="https://icu.unicode.org">International Components for
449bc421551SDag-Erling SmørgravUnicode (<abbr>ICU</abbr>)</a> contains C/C++ and <a
45075411d15SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Java_(programming_language)">Java</a>
451bc421551SDag-Erling Smørgravlibraries for internationalization that
452bc421551SDag-Erling Smørgravhas a compiler from <code><abbr>tz</abbr></code> source
453bc421551SDag-Erling Smørgravand from <abbr title="Common Locale Data Repository">CLDR</abbr> data
454bc421551SDag-Erling Smørgrav(mentioned <a href="#CLDR">below</a>)
455bc421551SDag-Erling Smørgravinto an <abbr>ICU</abbr>-specific format.
456bc421551SDag-Erling Smørgrav<abbr>ICU</abbr> is freely available under a
457bc421551SDag-Erling Smørgrav<abbr>BSD</abbr>-style license.</li>
458bc421551SDag-Erling Smørgrav<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
459bc421551SDag-Erling Smørgravthe <a href="https://elixir-lang.org">Elixir</a> language downloads
460bc421551SDag-Erling Smørgravand compiles <code><abbr>tz</abbr></code> source and exposes <abbr
461bc421551SDag-Erling Smørgravtitle="Application Program Interface">API</abbr>s for use. It is
462bc421551SDag-Erling Smørgravfreely available under the <abbr>MIT</abbr> license.</li>
463bc421551SDag-Erling Smørgrav<li>Java-based compilers and libraries include:
464bc421551SDag-Erling Smørgrav<ul>
465bc421551SDag-Erling Smørgrav<li>The <a
466bc421551SDag-Erling Smørgravhref="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater
467bc421551SDag-Erling Smørgravtool</a> compiles <code><abbr>tz</abbr></code> source into the format used by
468*a979394aSDag-Erling Smørgrav<a href="https://openjdk.org">OpenJDK</a> and
469*a979394aSDag-Erling Smørgrav<a href="https://jdk.java.net">Oracle JDK</a>.
470bc421551SDag-Erling SmørgravAlthough its source code is proprietary, its executable is available under the
471bc421551SDag-Erling Smørgrav<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE
472bc421551SDag-Erling SmørgravTimezone Updater License Agreement</a>.</li>
473bc421551SDag-Erling Smørgrav<li>The <a
474bc421551SDag-Erling Smørgravhref="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java
475bc421551SDag-Erling SmørgravSE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a
476bc421551SDag-Erling Smørgravhref="https://www.threeten.org/threeten-extra/">ThreeTen-Extra</a>,
477bc421551SDag-Erling Smørgravwhich is freely available under a <abbr>BSD</abbr>-style license.</li>
478bc421551SDag-Erling Smørgrav<li><a href="https://www.joda.org/joda-time/">Joda-Time &ndash; Java date
479bc421551SDag-Erling Smørgravand time <abbr>API</abbr></a> contains a class
480bc421551SDag-Erling Smørgrav<code>org.joda.time.tz.ZoneInfoCompiler</code> that compiles
481bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> source into a binary format. It inspired
482bc421551SDag-Erling SmørgravJava 8 <code>java.time</code>, which its users should migrate to once
483bc421551SDag-Erling Smørgravthey can assume Java 8 or later. It is available under the <a
484bc421551SDag-Erling Smørgravhref="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
485bc421551SDag-Erling Smørgrav<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a
486bc421551SDag-Erling Smørgravhref="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
487bc421551SDag-Erling Smørgravare alternatives to TZUpdater. IANA Updater's license is unclear;
488bc421551SDag-Erling SmørgravZIUpdater is licensed under the <abbr>GPL</abbr>.</li>
489bc421551SDag-Erling Smørgrav<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
490bc421551SDag-Erling Smørgravtime library for Android</a> and
491*a979394aSDag-Erling Smørgrav<a href="https://github.com/MenoData/Time4J">Time4J: Advanced date,
492bc421551SDag-Erling Smørgravtime and interval library for Java</a> compile
493bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> source into a binary format.
494bc421551SDag-Erling SmørgravTime4A is available under the Apache License and Time4J is
495bc421551SDag-Erling Smørgravavailable under the <a
496bc421551SDag-Erling Smørgravhref="https://www.gnu.org/copyleft/lesser.html"><abbr>GNU</abbr> Lesser
497bc421551SDag-Erling SmørgravGeneral Public License (<abbr title="Lesser General Public
498bc421551SDag-Erling SmørgravLicense">LGPL</abbr>)</a>.</li>
499bc421551SDag-Erling Smørgrav<li><abbr>ICU</abbr> (mentioned <a href="#ICU">above</a>) contains compilers and
500bc421551SDag-Erling SmørgravJava-based libraries.</li>
501bc421551SDag-Erling Smørgrav</ul>
502bc421551SDag-Erling Smørgrav<li><a href="https://nodatime.org">Noda Time &ndash; Date and
503bc421551SDag-Erling Smørgravtime <abbr>API</abbr> for .NET</a>
504bc421551SDag-Erling Smørgravis like Joda-Time and Time4J, but for the .NET framework instead of Java.
505bc421551SDag-Erling SmørgravIt is freely available under the Apache License.</li>
506bc421551SDag-Erling Smørgrav<li>Many modern
507bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>
508bc421551SDag-Erling Smørgravruntimes support <code><abbr>tz</abbr></code> natively via the
50946c59934SDag-Erling Smørgrav<code>timeZone</code> option of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"><code>Intl.DateTimeFormat</code></a>.
510bc421551SDag-Erling SmørgravThis can be used as-is or with most of the following libraries,
51146c59934SDag-Erling Smørgravmany of which also support runtimes lacking the <code>timeZone</code> option.
512bc421551SDag-Erling Smørgrav<ul>
513bc421551SDag-Erling Smørgrav<li>The <a
51446c59934SDag-Erling Smørgravhref="https://github.com/formatjs/date-time-format-timezone"><code>Intl.DateTimeFormat</code>
515bc421551SDag-Erling Smørgravtimezone polyfill</a>
516bc421551SDag-Erling Smørgravis freely available under a <abbr>BSD</abbr>-style license.</li>
517*a979394aSDag-Erling Smørgrav<li>The <a href="https://date-fns.org">date-fns</a>
518bc421551SDag-Erling Smørgravlibrary manipulates timezone-aware timestamps in browsers and
519bc421551SDag-Erling Smørgravin <a href="https://nodejs.org/en/">Node.js</a>.
520bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
521bc421551SDag-Erling Smørgrav<li><a href="https://github.com/iamkun/dayjs">Day.js</a> is a
522bc421551SDag-Erling Smørgravminimalist replacement for the date and time API of
523bc421551SDag-Erling Smørgravthe <a href="https://momentjs.com/docs/">now-legacy Moment.js</a> date
524bc421551SDag-Erling Smørgravmanipulation library.
525bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
526bc421551SDag-Erling Smørgrav<li><a href="https://moment.github.io/luxon/">Luxon</a> improves
52746c59934SDag-Erling Smørgravtimezone support for the <code>Intl</code> API.
528bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
529bc421551SDag-Erling Smørgrav<li><a href="https://momentjs.com/timezone/">Moment Timezone</a> is a
530bc421551SDag-Erling SmørgravMoment.js plugin.
531bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
532bc421551SDag-Erling Smørgrav<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a
533bc421551SDag-Erling SmørgravJavaScript library that supports date arithmetic that is time zone
534bc421551SDag-Erling Smørgravaware. It is freely available under the <abbr>MIT</abbr> license.</li>
535bc421551SDag-Erling Smørgrav<li><a href="https://www.npmjs.com/package/@tubular/time">@tubular/time</a>
536bc421551SDag-Erling Smørgravsupports live <code><abbr>tzdb</abbr></code> updates,
537bc421551SDag-Erling Smørgravastronomical and atomic time, a command-line interface,
538bc421551SDag-Erling Smørgravand full <a
539bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/TypeScript">TypeScript</a>.
540bc421551SDag-Erling SmørgravIts companion <a
541bc421551SDag-Erling Smørgravhref="https://www.npmjs.com/package/@tubular/time-tzdb">@tubular/time-tzdb</a>
542bc421551SDag-Erling Smørgravcan generate <abbr>TZif</abbr> and other files, and a companion website
543bc421551SDag-Erling Smørgrav<a href="https://tzexplorer.org">Timezone Database Explorer</a> lets you
544bc421551SDag-Erling Smørgravconvert timestamps, view transition histories, and download code and data.
545bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
546bc421551SDag-Erling Smørgrav</ul>
547bc421551SDag-Erling SmørgravThe proposed <a
54846c59934SDag-Erling Smørgravhref="https://github.com/tc39/proposal-temporal"><code>Temporal</code>
549bc421551SDag-Erling Smørgravobjects</a> let programs access an abstract view of
550bc421551SDag-Erling Smørgrav<code><abbr>tzdb</abbr></code> data, and are designed to replace <a
551bc421551SDag-Erling Smørgravhref="https://codeofmatt.com/javascript-date-type-is-horribly-broken/">JavaScript's
55246c59934SDag-Erling Smørgravproblematic <code>Date</code> objects</a> when working with dates and times.
553*a979394aSDag-Erling Smørgrav<li><a href="https://github.com/JuliaTime">JuliaTime</a> contains a
554bc421551SDag-Erling Smørgravcompiler from <code><abbr>tz</abbr></code> source into
555*a979394aSDag-Erling Smørgrav<a href="https://julialang.org">Julia</a>. It is freely available
556bc421551SDag-Erling Smørgravunder the <abbr>MIT</abbr> license.</li>
557bc421551SDag-Erling Smørgrav<li><a href="https://github.com/pavkam/tzdb"><abbr>TZDB</abbr> &ndash;
558bc421551SDag-Erling Smørgrav<abbr>IANA</abbr> Time Zone Database for Delphi/<abbr
559bc421551SDag-Erling Smørgravtitle="Free Pascal Compiler">FPC</abbr></a>
560bc421551SDag-Erling Smørgravcompiles from <code><abbr>tz</abbr></code> source into
561bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Object_Pascal">Object Pascal</a>
562bc421551SDag-Erling Smørgravas compiled by <a href="https://en.wikipedia.org/wiki/Delphi_(IDE)">Delphi</a>
563bc421551SDag-Erling Smørgravand <a
564bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Free_Pascal"><abbr>FPC</abbr></a>.
565bc421551SDag-Erling SmørgravIt is freely available under a <abbr>BSD</abbr>-style license.</li>
566*a979394aSDag-Erling Smørgrav<li><a href="https://pythonhosted.org/pytz/">pytz &ndash; World Timezone
567bc421551SDag-Erling SmørgravDefinitions for Python</a> compiles <code><abbr>tz</abbr></code> source into
568bc421551SDag-Erling Smørgrav<a href="https://www.python.org">Python</a>.
569bc421551SDag-Erling SmørgravIt is freely available under a <abbr>BSD</abbr>-style license.
570bc421551SDag-Erling SmørgravIn code that can assume Python 3.6 or later it is largely superseded; see <a
571bc421551SDag-Erling Smørgravhref="https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html">pytz:
572bc421551SDag-Erling SmørgravThe Fastest Footgun in the West</a>.</li>
573bc421551SDag-Erling Smørgrav<li><a href="https://tzinfo.github.io">TZInfo &ndash;
574bc421551SDag-Erling SmørgravRuby Timezone Library</a>
575bc421551SDag-Erling Smørgravcompiles <code><abbr>tz</abbr></code> source into
576bc421551SDag-Erling Smørgrav<a href="https://www.ruby-lang.org/en/">Ruby</a>.
577bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
578bc421551SDag-Erling Smørgrav<li>The <a href="https://www.squeaksource.com/Chronos/">Chronos Date/Time
579bc421551SDag-Erling SmørgravLibrary</a> is
580bc421551SDag-Erling Smørgrava <a href="https://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a> class
581bc421551SDag-Erling Smørgravlibrary that compiles <code><abbr>tz</abbr></code> source into a time
582bc421551SDag-Erling Smørgravzone repository whose format
583bc421551SDag-Erling Smørgravis either proprietary or an <abbr>XML</abbr>-encoded
584bc421551SDag-Erling Smørgravrepresentation.</li>
585bc421551SDag-Erling Smørgrav<li><a id="Tcl" href="https://tcl.tk">Tcl</a>
586bc421551SDag-Erling Smørgravcontains a developer-oriented parser that compiles <code><abbr>tz</abbr></code>
587bc421551SDag-Erling Smørgravsource into text files, along with a runtime that can read those
588bc421551SDag-Erling Smørgravfiles. Tcl is freely available under a <abbr>BSD</abbr>-style
589bc421551SDag-Erling Smørgravlicense.</li>
590bc421551SDag-Erling Smørgrav</ul>
591bc421551SDag-Erling Smørgrav</section>
592bc421551SDag-Erling Smørgrav
593bc421551SDag-Erling Smørgrav<section>
594bc421551SDag-Erling Smørgrav<h2 id="TZif">Other <abbr>TZif</abbr> readers</h2>
595bc421551SDag-Erling Smørgrav<ul>
596bc421551SDag-Erling Smørgrav<li>The <a
597bc421551SDag-Erling Smørgravhref="https://www.gnu.org/software/libc/"><abbr>GNU</abbr> C
598bc421551SDag-Erling SmørgravLibrary</a>
599bc421551SDag-Erling Smørgravhas an independent, thread-safe implementation of
600bc421551SDag-Erling Smørgrava <abbr>TZif</abbr> file reader.
601bc421551SDag-Erling SmørgravThis library is freely available under the LGPL
602bc421551SDag-Erling Smørgravand is widely used in <abbr>GNU</abbr>/Linux systems.</li>
603bc421551SDag-Erling Smørgrav<li><a href="https://www.gnome.org">GNOME</a>'s
604bc421551SDag-Erling Smørgrav<a href="https://developer.gnome.org/glib/">GLib</a> has
605bc421551SDag-Erling Smørgrava <abbr>TZif</abbr> file reader written in C that
606bc421551SDag-Erling Smørgravcreates a <code>GTimeZone</code> object representing sets
607bc421551SDag-Erling Smørgravof <abbr>UT</abbr> offsets.
608bc421551SDag-Erling SmørgravIt is freely available under the <abbr>LGPL</abbr>.</li>
609bc421551SDag-Erling Smørgrav<li>The
610bc421551SDag-Erling Smørgrav<a href="https://github.com/bloomberg/bde/wiki">BDE Standard Library</a>'s
611bc421551SDag-Erling Smørgrav<code>baltzo::TimeZoneUtil</code> component contains a C++
612bc421551SDag-Erling Smørgravimplementation of a <abbr>TZif</abbr> file reader. It is freely available under
613bc421551SDag-Erling Smørgravthe Apache License.</li>
614bc421551SDag-Erling Smørgrav<li><a href="https://github.com/google/cctz">CCTZ</a> is a simple C++
615bc421551SDag-Erling Smørgravlibrary that translates between <abbr>UT</abbr> and civil time and
616bc421551SDag-Erling Smørgravcan read <abbr>TZif</abbr> files. It is freely available under the Apache
617bc421551SDag-Erling SmørgravLicense.</li>
61846c59934SDag-Erling Smørgrav<li>The
61946c59934SDag-Erling Smørgrav<a href="https://github.com/nayarsystems/posix_tz_db"><code>posix_tz_db</code>
62046c59934SDag-Erling Smørgravpackage</a> contains Python code
62146c59934SDag-Erling Smørgravto generate <abbr>CSV</abbr> and <abbr>JSON</abbr> tables that map
622*a979394aSDag-Erling Smørgrav<code><abbr>tz</abbr></code> settings to proleptic TZ approximations.
62346c59934SDag-Erling SmørgravFor example, it maps <code>"Africa/Cairo"</code>
62446c59934SDag-Erling Smørgravto <code>"EET-2EEST,M4.5.5/0,M10.5.4/24"</code>,
62546c59934SDag-Erling Smørgravan approximation valid for Cairo timestamps from 2023 on.
626*a979394aSDag-Erling SmørgravThis can help porting to platforms that support only proleptic TZ.
62746c59934SDag-Erling SmørgravThe package is freely available under the MIT license.</li>
628bc421551SDag-Erling Smørgrav<li><a href="https://github.com/derickr/timelib">Timelib</a> is a C
629bc421551SDag-Erling Smørgravlibrary that reads <abbr>TZif</abbr> files and converts
630bc421551SDag-Erling Smørgravtimestamps from one time zone or format to another.
631bc421551SDag-Erling SmørgravIt is used by <a href="https://secure.php.net"><abbr
632bc421551SDag-Erling Smørgravtitle="PHP: Hypertext Preprocessor">PHP</abbr></a>,
633bc421551SDag-Erling Smørgrav<a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>,
634bc421551SDag-Erling Smørgravand <a href="https://www.mongodb.com">MongoDB</a>.
635bc421551SDag-Erling SmørgravIt is freely available under the <abbr>MIT</abbr> license.</li>
636bc421551SDag-Erling Smørgrav<li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a
637bc421551SDag-Erling Smørgrav<abbr>TZif</abbr> file reader.</li>
638bc421551SDag-Erling Smørgrav<li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile">
639bc421551SDag-Erling SmørgravDateTime::TimeZone::Tzfile</a>
640bc421551SDag-Erling Smørgravis a <abbr>TZif</abbr> file reader written in Perl.
641bc421551SDag-Erling SmørgravIt is freely available under the same terms as Perl
642bc421551SDag-Erling Smørgrav(dual <abbr>GPL</abbr> and Artistic license).</li>
643bc421551SDag-Erling Smørgrav<li>Python has a <a id="python-zoneinfo"
644bc421551SDag-Erling Smørgravhref="https://docs.python.org/3/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code>
645bc421551SDag-Erling Smørgravclass</a> that reads <abbr>TZif</abbr> data and creates objects
646bc421551SDag-Erling Smørgravthat represent <code><abbr>tzdb</abbr></code> timezones.
647bc421551SDag-Erling SmørgravPython is freely available under the
648bc421551SDag-Erling Smørgrav<a href="https://docs.python.org/3/license.html">Python Software Foundation
649bc421551SDag-Erling SmørgravLicense</a>.
650*a979394aSDag-Erling SmørgravA companion <a id="pypi-tzdata" href="https://pypi.org">PyPI</a> module
651bc421551SDag-Erling Smørgrav<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a>
652bc421551SDag-Erling Smørgravsupplies TZif data if the underlying system data cannot be found;
653bc421551SDag-Erling Smørgravit is freely available under the Apache License.</li>
654bc421551SDag-Erling Smørgrav<li>The
655bc421551SDag-Erling Smørgravpublic-domain <a href="https://github.com/dbaron/tz.js">tz.js</a>
656bc421551SDag-Erling Smørgravlibrary contains a Python tool that
657bc421551SDag-Erling Smørgravconverts <abbr>TZif</abbr> data into
658bc421551SDag-Erling Smørgrav<abbr>JSON</abbr>-format data suitable for use
659bc421551SDag-Erling Smørgravin its JavaScript library for time zone conversion. Dates before 1970
660bc421551SDag-Erling Smørgravare not supported.</li>
661bc421551SDag-Erling Smørgrav<li>The <a
662bc421551SDag-Erling Smørgravhref="https://hackage.haskell.org/package/timezone-olson">timezone-olson</a>
663bc421551SDag-Erling Smørgravpackage contains <a href="https://www.haskell.org">Haskell</a> code that
664bc421551SDag-Erling Smørgravparses and uses <abbr>TZif</abbr> data. It is freely
665bc421551SDag-Erling Smørgravavailable under a <abbr>BSD</abbr>-style license.</li>
666bc421551SDag-Erling Smørgrav</ul>
667bc421551SDag-Erling Smørgrav</section>
668bc421551SDag-Erling Smørgrav
669bc421551SDag-Erling Smørgrav<section>
670bc421551SDag-Erling Smørgrav<h2 id="software">Other <code><abbr>tz</abbr></code>-based time zone software</h2>
671bc421551SDag-Erling Smørgrav<ul>
672bc421551SDag-Erling Smørgrav<li><a href="https://foxclocks.org">FoxClocks</a>
673bc421551SDag-Erling Smørgravis an extension for <a href="https://www.google.com/chrome/">Google
67446c59934SDag-Erling SmørgravChrome</a>, <a
675bc421551SDag-Erling Smørgravhref="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> and <a
676bc421551SDag-Erling Smørgravhref="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a>.
677bc421551SDag-Erling SmørgravIt displays multiple clocks in the application window, and has a mapping
678bc421551SDag-Erling Smørgravinterface to <a href="https://www.google.com/earth/">Google Earth</a>.
679bc421551SDag-Erling SmørgravIt is freely available under the <abbr>GPL</abbr>.</li>
680bc421551SDag-Erling Smørgrav<li><a href="https://golang.org">Go programming language</a>
681bc421551SDag-Erling Smørgravimplementations contain a copy of a 32-bit subset of a recent
682bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> database in a
683bc421551SDag-Erling SmørgravGo-specific format.</li>
684bc421551SDag-Erling Smørgrav<li>Microsoft Windows 8.1
685bc421551SDag-Erling Smørgravand later has <code><abbr>tz</abbr></code> data and <abbr>CLDR</abbr>
686bc421551SDag-Erling Smørgravdata (mentioned <a href="#CLDR">below</a>) used by the
687bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Windows_Runtime">Windows Runtime</a> /
688bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Universal_Windows_Platform">Universal Windows Platform</a> classes
689bc421551SDag-Erling Smørgrav<a href="https://docs.microsoft.com/uwp/api/Windows.Globalization.DateTimeFormatting.DateTimeFormatter"><code>DateTimeFormatter</code></a> and
690bc421551SDag-Erling Smørgrav<a href="https://docs.microsoft.com/uwp/api/windows.globalization.calendar"><code>Calendar</code></a>.
691bc421551SDag-Erling Smørgrav<a id="System.TimeZoneInfo"
692bc421551SDag-Erling Smørgravhref="https://blogs.msdn.microsoft.com/bclteam/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free/">Exploring
693bc421551SDag-Erling SmørgravWindows Time Zones with <code>System.TimeZoneInfo</code></a> describes
694bc421551SDag-Erling Smørgravthe older, proprietary method of Microsoft Windows 2000 and later,
695bc421551SDag-Erling Smørgravwhich stores time zone data in the
696bc421551SDag-Erling Smørgrav<a href="https://en.wikipedia.org/wiki/Windows_Registry">Windows Registry</a>. The
697bc421551SDag-Erling Smørgrav<a
698bc421551SDag-Erling Smørgravhref="https://unicode.org/cldr/charts/latest/supplemental/zone_tzid.html">Zone &rarr;
699bc421551SDag-Erling SmørgravTzid table</a> or <a
700bc421551SDag-Erling Smørgravhref="https://github.com/unicode-org/cldr/blob/master/common/supplemental/windowsZones.xml"><abbr>XML</abbr>
701bc421551SDag-Erling Smørgravfile</a> of the <abbr>CLDR</abbr> data maps proprietary zone IDs
702bc421551SDag-Erling Smørgravto <code><abbr>tz</abbr></code> names.
703bc421551SDag-Erling SmørgravThese mappings can be performed programmatically via the <a href="https://github.com/mj1856/TimeZoneConverter">TimeZoneConverter</a> .NET library,
704bc421551SDag-Erling Smørgravor the ICU Java and C++ libraries mentioned <a href="#ICU">above</a>.
705bc421551SDag-Erling Smørgrav<li><a
706bc421551SDag-Erling Smørgravhref="https://www.oracle.com/java/index.html">Oracle
707bc421551SDag-Erling SmørgravJava</a> contains a copy of a subset of a recent
708bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> database in a
709bc421551SDag-Erling SmørgravJava-specific format.</li>
710bc421551SDag-Erling Smørgrav</ul>
711bc421551SDag-Erling Smørgrav</section>
712bc421551SDag-Erling Smørgrav
713bc421551SDag-Erling Smørgrav<section>
714bc421551SDag-Erling Smørgrav<h2 id="other-dbs">Other time zone databases</h2>
715bc421551SDag-Erling Smørgrav<ul>
716bc421551SDag-Erling Smørgrav<li><a href="https://www.astro.com/atlas">Time-zone Atlas</a>
717bc421551SDag-Erling Smørgravis Astrodienst's Web version of Shanks and Pottenger's out-of-print
718bc421551SDag-Erling Smørgravtime zone history atlases
719bc421551SDag-Erling Smørgrav<a href="https://www.worldcat.org/oclc/468828649">for the US</a> and
720bc421551SDag-Erling Smørgrav<a href="https://www.worldcat.org/oclc/76950459">for the world</a>.
721bc421551SDag-Erling SmørgravAlthough these extensive atlases
722bc421551SDag-Erling Smørgrav<a href="https://astrologynewsservice.com/opinion/how-astrologers-contributed-to-the-information-age-a-brief-history-of-time/">were
723bc421551SDag-Erling Smørgravsources for much of the older <code><abbr>tz</abbr></code> data</a>,
724bc421551SDag-Erling Smørgravthey are unreliable as Shanks appears to have
725bc421551SDag-Erling Smørgravguessed many <abbr>UT</abbr> offsets and transitions. The atlases cite no
726bc421551SDag-Erling Smørgravsources and do not indicate which entries are guesswork.</li>
727bc421551SDag-Erling Smørgrav<li><a href="https://en.wikipedia.org/wiki/HP-UX">HP-UX</a> has a database in
728bc421551SDag-Erling Smørgravits own <code>tztab</code>(4) format.</li>
729bc421551SDag-Erling Smørgrav<li>Microsoft Windows has proprietary data mentioned
730bc421551SDag-Erling Smørgrav<a href="#System.TimeZoneInfo">above</a>.</li>
731bc421551SDag-Erling Smørgrav<li><a href="https://www.worldtimeserver.com">World Time Server</a>
732bc421551SDag-Erling Smørgravis another time zone database.</li>
733bc421551SDag-Erling Smørgrav<li>The <a
734bc421551SDag-Erling Smørgravhref="https://www.iata.org/publications/store/Pages/standard-schedules-information.aspx">Standard
735bc421551SDag-Erling SmørgravSchedules Information Manual</a> of the
736bc421551SDag-Erling SmørgravInternational Air Transport Association
737bc421551SDag-Erling Smørgravgives current time zone rules for airports served by commercial aviation.</li>
738bc421551SDag-Erling Smørgrav</ul>
739bc421551SDag-Erling Smørgrav</section>
740bc421551SDag-Erling Smørgrav
741bc421551SDag-Erling Smørgrav<section>
742bc421551SDag-Erling Smørgrav<h2 id="maps">Maps</h2>
743bc421551SDag-Erling Smørgrav<ul>
744bc421551SDag-Erling Smørgrav<li>The <a
745bc421551SDag-Erling Smørgravhref="https://www.cia.gov/the-world-factbook/maps/world-regional/">World
746bc421551SDag-Erling Smørgravand Regional Maps section</a> of <em>The World Factbook</em>, published by the
747bc421551SDag-Erling Smørgrav<a href="https://www.cia.gov">US Central Intelligence
748bc421551SDag-Erling SmørgravAgency (<abbr
749bc421551SDag-Erling Smørgravtitle="Central Intelligence Agency">CIA</abbr>)</a>, contains a time
750bc421551SDag-Erling Smørgravzone map; the
751bc421551SDag-Erling Smørgrav<a
752bc421551SDag-Erling Smørgravhref="https://legacy.lib.utexas.edu/maps/world.html">Perry&ndash;Casta&ntilde;eda
753bc421551SDag-Erling SmørgravLibrary Map Collection</a>
754bc421551SDag-Erling Smørgravof the University of Texas at Austin has copies of
755bc421551SDag-Erling Smørgravrecent editions.
756bc421551SDag-Erling SmørgravThe pictorial quality is good,
757bc421551SDag-Erling Smørgravbut the maps do not indicate daylight saving time,
758bc421551SDag-Erling Smørgravand parts of the data are a few years out of date.</li>
759bc421551SDag-Erling Smørgrav<li><a href="https://www.worldtimezone.com">World Time Zone Map
760bc421551SDag-Erling Smørgravwith current time</a>
761bc421551SDag-Erling Smørgravhas several fancy time zone maps; it covers Russia particularly well.
762bc421551SDag-Erling SmørgravThe maps' pictorial quality is not quite as good as the
763bc421551SDag-Erling Smørgrav<abbr>CIA</abbr>'s
764bc421551SDag-Erling Smørgravbut the maps are more up to date.</li>
765bc421551SDag-Erling Smørgrav<li><a
766bc421551SDag-Erling Smørgravhref="https://blog.poormansmath.net/how-much-is-time-wrong-around-the-world/">How
767bc421551SDag-Erling Smørgravmuch is time wrong around the world?</a> maps the difference between
768bc421551SDag-Erling Smørgravmean solar and standard time, highlighting areas such as western China
769bc421551SDag-Erling Smørgravwhere the two differ greatly. It's a bit out of date, unfortunately.</li>
770bc421551SDag-Erling Smørgrav</ul>
771bc421551SDag-Erling Smørgrav</section>
772bc421551SDag-Erling Smørgrav
773bc421551SDag-Erling Smørgrav<section>
774bc421551SDag-Erling Smørgrav<h2 id="boundaries">Time zone boundaries</h2>
775bc421551SDag-Erling Smørgrav<p>Geographical boundaries between timezones are available
776bc421551SDag-Erling Smørgravfrom several <a
777bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Internet_geolocation">Internet
778bc421551SDag-Erling Smørgravgeolocation</a>
779bc421551SDag-Erling Smørgravservices and other sources.</p>
780bc421551SDag-Erling Smørgrav<ul>
781bc421551SDag-Erling Smørgrav<li><a href="https://github.com/evansiroky/timezone-boundary-builder">Timezone
782bc421551SDag-Erling SmørgravBoundary Builder</a> extracts
783bc421551SDag-Erling Smørgrav<a href="https://www.openstreetmap.org">Open Street Map</a> data to build
784bc421551SDag-Erling Smørgravboundaries of <code><abbr>tzdb</abbr></code> timezones.
785bc421551SDag-Erling SmørgravIts code is freely available under the <abbr>MIT</abbr> license, and
786bc421551SDag-Erling Smørgravits data entries are freely available under the
787bc421551SDag-Erling Smørgrav<a href="https://opendatacommons.org/licenses/odbl/">Open Data Commons
78846c59934SDag-Erling SmørgravOpen Database License</a>. The borders appear to be quite accurate.
78946c59934SDag-Erling SmørgravIts main web page lists more than twenty libraries
79046c59934SDag-Erling Smørgravfor looking up a timezone name from a GPS coordinate.</li>
791bc421551SDag-Erling Smørgrav<li>Free access via a network API, if you register a key, is provided by
792bc421551SDag-Erling Smørgravthe <a
793bc421551SDag-Erling Smørgravhref="https://www.geonames.org/export/web-services.html#timezone">GeoNames
794bc421551SDag-Erling SmørgravTimezone web service</a>, the <a
795bc421551SDag-Erling Smørgravhref="https://developers.google.com/maps/documentation/timezone/intro">Google
796bc421551SDag-Erling SmørgravMaps Time Zone API</a>, and
797bc421551SDag-Erling Smørgravthe <a href="https://timezonedb.com/api">TimeZoneDB API</a>.
798bc421551SDag-Erling SmørgravCommercial network API access is provided
799bc421551SDag-Erling Smørgravby <a href="https://askgeo.com">AskGeo</a>
800bc421551SDag-Erling Smørgravand <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>.
801bc421551SDag-Erling Smørgrav</li>
802bc421551SDag-Erling Smørgrav<li>"<a
803bc421551SDag-Erling Smørgravhref="https://stackoverflow.com/questions/16086962/how-to-get-a-time-zone-from-a-location-using-latitude-and-longitude-coordinates/16086964">How
804bc421551SDag-Erling Smørgravto get a time zone from a location using latitude and longitude
805bc421551SDag-Erling Smørgravcoordinates?</a>" discusses other geolocation possibilities.</li>
806bc421551SDag-Erling Smørgrav<li><a href="http://statoids.com/statoids.html">Administrative
807bc421551SDag-Erling SmørgravDivisions of Countries ("Statoids")</a> lists
808bc421551SDag-Erling Smørgravpolitical subdivision data related to time zones.</li>
809bc421551SDag-Erling Smørgrav<li><a href="https://manifold.net/info/freestuff.shtml">Manifold Software
810bc421551SDag-Erling Smørgrav&ndash; GIS and Database Tools</a> includes a Manifold-format map of
81146c59934SDag-Erling Smørgravworld time zone boundaries circa 2007, distributed under the
812bc421551SDag-Erling Smørgrav<abbr>GPL</abbr>.</li>
813bc421551SDag-Erling Smørgrav<li>A ship within the <a
814bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Territorial_waters">territorial
815bc421551SDag-Erling Smørgravwaters</a> of any nation uses that nation's time. In international
816bc421551SDag-Erling Smørgravwaters, time zone boundaries are meridians 15&deg; apart, except that
817bc421551SDag-Erling Smørgrav<abbr>UT</abbr>&minus;12 and <abbr>UT</abbr>+12 are each 7.5&deg;
818bc421551SDag-Erling Smørgravwide and are separated by
819bc421551SDag-Erling Smørgravthe 180&deg; meridian (not by the International Date Line, which is
820bc421551SDag-Erling Smørgravfor land and territorial waters only). A captain can change ship's
821bc421551SDag-Erling Smørgravclocks any time after entering a new time zone; midnight changes are
822bc421551SDag-Erling Smørgravcommon.</li>
823bc421551SDag-Erling Smørgrav</ul>
824bc421551SDag-Erling Smørgrav</section>
825bc421551SDag-Erling Smørgrav
826bc421551SDag-Erling Smørgrav<section>
827bc421551SDag-Erling Smørgrav<h2 id="civil">Civil time concepts and history</h2>
828bc421551SDag-Erling Smørgrav<ul>
829bc421551SDag-Erling Smørgrav<li><a href="https://www.nist.gov/pml/time-and-frequency-division/popular-links/walk-through-time">A
830bc421551SDag-Erling SmørgravWalk through Time</a>
831bc421551SDag-Erling Smørgravsurveys the evolution of timekeeping.</li>
832bc421551SDag-Erling Smørgrav<li>The history of daylight saving time is surveyed in <a
833bc421551SDag-Erling Smørgravhref="http://www.webexhibits.org/daylightsaving/">About Daylight
834bc421551SDag-Erling SmørgravSaving Time &ndash; History, rationale, laws &amp; dates</a> and summarized in
835bc421551SDag-Erling Smørgrav<a href="http://seizethedaylight.com/dst/">A Brief
836bc421551SDag-Erling SmørgravHistory of Daylight Saving Time</a>.</li>
837bc421551SDag-Erling Smørgrav<li><a href="https://www.laphamsquarterly.org/roundtable/time-lords">Time
838bc421551SDag-Erling SmørgravLords</a> discusses how authoritarians manipulate civil time.</li>
839bc421551SDag-Erling Smørgrav<li><a href="https://www.w3.org/TR/timezone/">Working with Time Zones</a>
840bc421551SDag-Erling Smørgravcontains guidelines and best practices for software applications that
841bc421551SDag-Erling Smørgravdeal with civil time.</li>
84246c59934SDag-Erling Smørgrav<li><a href="https://webspace.science.uu.nl/~gent0113/idl/idl.htm">A History of
843bc421551SDag-Erling Smørgravthe International Date Line</a> tells the story of the most important
844bc421551SDag-Erling Smørgravtime zone boundary.</li>
845bc421551SDag-Erling Smørgrav<li><a href="http://statoids.com/tconcept.html">Basic Time
846bc421551SDag-Erling SmørgravZone Concepts</a> discusses terminological issues behind time zones.</li>
847bc421551SDag-Erling Smørgrav</ul>
848bc421551SDag-Erling Smørgrav</section>
849bc421551SDag-Erling Smørgrav
850bc421551SDag-Erling Smørgrav<section>
851bc421551SDag-Erling Smørgrav<h2 id="national">National histories of legal time</h2>
852bc421551SDag-Erling Smørgrav<dl>
853bc421551SDag-Erling Smørgrav<dt>Australia</dt>
854bc421551SDag-Erling Smørgrav<dd>The Parliamentary Library commissioned a <a
85546c59934SDag-Erling Smørgravhref="https://parlinfo.aph.gov.au/parlInfo/download/library/prspub/359V6/upload_binary/359v60.pdf">research
856bc421551SDag-Erling Smørgravpaper on daylight saving time in Australia</a>.
857bc421551SDag-Erling SmørgravThe Bureau of Meteorology publishes a list of <a
858bc421551SDag-Erling Smørgravhref="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
859bc421551SDag-Erling SmørgravDates of Daylight Savings Time within Australia</a>.</dd>
860bc421551SDag-Erling Smørgrav<dt>Belgium</dt>
861bc421551SDag-Erling Smørgrav<dd>The Royal Observatory of Belgium maintains a table of time in
862bc421551SDag-Erling SmørgravBelgium (in
86346c59934SDag-Erling Smørgrav<a href="https://robinfo.oma.be/nl/astro-info/tijd/"
864bc421551SDag-Erling Smørgravhreflang="nl">Dutch</a> and <a
86546c59934SDag-Erling Smørgravhref="https://robinfo.oma.be/fr/astro-info/heure/"
866bc421551SDag-Erling Smørgravhreflang="fr">French</a>).</dd>
867bc421551SDag-Erling Smørgrav<dt>Brazil</dt>
868bc421551SDag-Erling Smørgrav<dd>The Time Service Department of the National Observatory
869bc421551SDag-Erling Smørgravrecords <a href="http://pcdsh01.on.br/DecHV.html"
870bc421551SDag-Erling Smørgravhreflang="pt-BR">Brazil's daylight saving time decrees (in
871bc421551SDag-Erling SmørgravPortuguese)</a>.</dd>
872bc421551SDag-Erling Smørgrav<dt>Canada</dt>
873bc421551SDag-Erling Smørgrav<dd>National Research Council Canada publishes current
874bc421551SDag-Erling Smørgravand some older information about <a
875bc421551SDag-Erling Smørgravhref="https://nrc.canada.ca/en/certifications-evaluations-standards/canadas-official-time/time-zones-daylight-saving-time">time
876bc421551SDag-Erling Smørgravzones and daylight saving time</a>.</dd>
877bc421551SDag-Erling Smørgrav<dt>Chile</dt>
878bc421551SDag-Erling Smørgrav<dd>The Hydrographic and Oceanographic Service of the Chilean Navy publishes a
879bc421551SDag-Erling Smørgrav<a href="https://www.horaoficial.cl/historia_hora.php" hreflang="es">history of
880bc421551SDag-Erling SmørgravChile's official time (in Spanish)</a>.</dd>
881bc421551SDag-Erling Smørgrav<dt>China</dt>
882bc421551SDag-Erling Smørgrav<dd>The Hong Kong Observatory maintains a
883bc421551SDag-Erling Smørgrav<a href="https://www.hko.gov.hk/en/gts/time/Summertime.htm">history of
884bc421551SDag-Erling Smørgrav summer time in Hong Kong</a>,
885bc421551SDag-Erling Smørgravand Macau's Meteorological and Geophysical Bureau maintains a <a
886bc421551SDag-Erling Smørgravhref="https://www.smg.gov.mo/en/subpage/224/page/174">similar
887bc421551SDag-Erling Smørgravhistory for Macau</a>.
888bc421551SDag-Erling SmørgravUnfortunately the latter is incomplete and has errors.</dd>
889bc421551SDag-Erling Smørgrav<dt>Czech Republic</dt>
890bc421551SDag-Erling Smørgrav<dd><a href="https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas"
891bc421551SDag-Erling Smørgravhreflang="cs">When daylight saving time starts and ends (in Czech)</a>
892bc421551SDag-Erling Smørgravsummarizes and cites historical <abbr>DST</abbr> regulations.</dd>
893bc421551SDag-Erling Smørgrav<dt>Germany</dt>
894bc421551SDag-Erling Smørgrav<dd>The National Institute for Science and Technology maintains the <a
895bc421551SDag-Erling Smørgravhref="https://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-441/realisation-of-legal-time-in-germany.html">Realisation
896bc421551SDag-Erling Smørgravof Legal Time in Germany</a>.</dd>
897bc421551SDag-Erling Smørgrav<dt>Israel</dt>
898*a979394aSDag-Erling Smørgrav<dd><a
899*a979394aSDag-Erling Smørgravhref="https://tz.cs.huji.ac.il">Israel Timezone Files</a>
900*a979394aSDag-Erling Smørgravlists official time-change announcements and laws since 1940,
901*a979394aSDag-Erling Smørgravalmost all in Hebrew.</dd>
902bc421551SDag-Erling Smørgrav<dt>Malaysia</dt>
903bc421551SDag-Erling Smørgrav<dd>See Singapore <a href="#Singapore">below</a>.</dd>
904bc421551SDag-Erling Smørgrav<dt>Mexico</dt>
905bc421551SDag-Erling Smørgrav<dd>The Investigation and Analysis Service of the Mexican Library of
906bc421551SDag-Erling SmørgravCongress has published a <a
907bc421551SDag-Erling Smørgravhref="https://www.diputados.gob.mx/bibliot/publica/inveyana/polisoc/horver/index.htm"
908bc421551SDag-Erling Smørgravhreflang="es">history of Mexican local time (in Spanish)</a>.</dd>
909bc421551SDag-Erling Smørgrav<dt>Netherlands</dt>
91046c59934SDag-Erling Smørgrav<dd><a href="https://webspace.science.uu.nl/~gent0113/wettijd/wettijd.htm"
911bc421551SDag-Erling Smørgravhreflang="nl">Legal time in the Netherlands (in Dutch)</a>
912bc421551SDag-Erling Smørgravcovers the history of local time in the Netherlands from ancient times.</dd>
913bc421551SDag-Erling Smørgrav<dt>New Zealand</dt>
914bc421551SDag-Erling Smørgrav<dd>The Department of Internal Affairs maintains a brief <a
915bc421551SDag-Erling Smørgravhref="https://www.dia.govt.nz/Daylight-Saving-History">History of
916bc421551SDag-Erling SmørgravDaylight Saving</a>.</dd>
91775411d15SDag-Erling Smørgrav<dt>Palestine</dt>
91875411d15SDag-Erling Smørgrav<dd>The Ministry of Telecom and IT publishes a <a
91946c59934SDag-Erling Smørgravhref="https://mtit.pna.ps/home/TimeZone"
92075411d15SDag-Erling Smørgravhreflang="ar">history of clock changes (in Arabic)</a>.</dd>
921bc421551SDag-Erling Smørgrav<dt>Portugal</dt>
922bc421551SDag-Erling Smørgrav<dd>The Lisbon Astronomical Observatory publishes a
923bc421551SDag-Erling Smørgrav<a href="https://oal.ul.pt/hora-legal/" hreflang="pt">history of
924bc421551SDag-Erling Smørgravlegal time (in Portuguese)</a>.</dd>
925bc421551SDag-Erling Smørgrav<dt>Singapore</dt>
926bc421551SDag-Erling Smørgrav<dd><a id="Singapore"
927bc421551SDag-Erling Smørgravhref="https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html">Why
928bc421551SDag-Erling Smørgravis Singapore in the "Wrong" Time Zone?</a> details the
929bc421551SDag-Erling Smørgravhistory of legal time in Singapore and Malaysia.</dd>
930bc421551SDag-Erling Smørgrav<dt>United Kingdom</dt>
931bc421551SDag-Erling Smørgrav<dd><a
932bc421551SDag-Erling Smørgravhref="https://www.polyomino.org.uk/british-time/">History of
933bc421551SDag-Erling Smørgravlegal time in Britain</a> discusses in detail the country
934bc421551SDag-Erling Smørgravwith perhaps the best-documented history of clock adjustments.</dd>
935bc421551SDag-Erling Smørgrav<dt>United States</dt>
936bc421551SDag-Erling Smørgrav<dd>The Department of Transportation's <a
937bc421551SDag-Erling Smørgravhref="https://www.transportation.gov/regulations/recent-time-zone-proceedings">Recent
938bc421551SDag-Erling SmørgravTime Zone Proceedings</a> lists changes to time zone boundaries.</dd>
939bc421551SDag-Erling Smørgrav<dt>Uruguay</dt>
940bc421551SDag-Erling Smørgrav<dd>The Oceanography, Hydrography, and Meteorology Service of the Uruguayan
941bc421551SDag-Erling SmørgravNavy (SOHMA) publishes an annual <a
942bc421551SDag-Erling Smørgravhref="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac
943bc421551SDag-Erling Smørgrav(in Spanish)</a>.</dd>
944bc421551SDag-Erling Smørgrav</dl>
945bc421551SDag-Erling Smørgrav</section>
946bc421551SDag-Erling Smørgrav
947bc421551SDag-Erling Smørgrav<section>
948bc421551SDag-Erling Smørgrav<h2 id="costs">Costs and benefits of time shifts</h2>
949bc421551SDag-Erling Smørgrav<p>Various sources argue for and against daylight saving time and time
950bc421551SDag-Erling Smørgravzone shifts, and many scientific studies have been conducted. This
951bc421551SDag-Erling Smørgravsection summarizes reviews and position statements based on
952bc421551SDag-Erling Smørgravscientific literature in the area.</p>
953bc421551SDag-Erling Smørgrav<ul>
95446c59934SDag-Erling Smørgrav<li>In 2022 the American Medical Association issued a
95546c59934SDag-Erling Smørgrav<a href="https://www.ama-assn.org/press-center/press-releases/ama-calls-permanent-standard-time">statement
95646c59934SDag-Erling Smørgravsupporting permanent standard time</a> on health grounds.</li>
957bc421551SDag-Erling Smørgrav<li>Carey RN, Sarma KM.
958bc421551SDag-Erling Smørgrav<a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of
959bc421551SDag-Erling Smørgravdaylight saving time on road traffic collision risk: a systematic
960bc421551SDag-Erling Smørgravreview</a>.
961bc421551SDag-Erling Smørgrav<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>.
962bc421551SDag-Erling SmørgravThis reviews research literature and concludes that the evidence
963bc421551SDag-Erling Smørgravneither supports nor refutes road safety benefits from
964bc421551SDag-Erling Smørgravshifts in time zones.</li>
965bc421551SDag-Erling Smørgrav<li>Havranek T, Herman D, Irsova D.
966bc421551SDag-Erling Smørgrav<a href="https://www.iaee.org/en/publications/ejarticle.aspx?id=3051">Does
96746c59934SDag-Erling Smørgravdaylight saving save electricity? A meta-analysis</a>.
968bc421551SDag-Erling Smørgrav<em>Energy J.</em> 2018;39(2):35&ndash;61.
969bc421551SDag-Erling Smørgravdoi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.thav</a>.
970bc421551SDag-Erling SmørgravThis analyzes research literature and concludes, "Electricity savings
971bc421551SDag-Erling Smørgravare larger for countries farther away from the equator, while
972bc421551SDag-Erling Smørgravsubtropical regions consume more electricity because of <abbr>DST</abbr>."</li>
97346c59934SDag-Erling Smørgrav<li>Malow BA. <a
97446c59934SDag-Erling Smørgravhref="https://academic.oup.com/sleep/article/45/12/zsac236/6717940">It is time
97546c59934SDag-Erling Smørgravto abolish the clock change and adopt permanent
97646c59934SDag-Erling Smørgravstandard time in the United States:
97746c59934SDag-Erling Smørgrava Sleep Research Society position statement</a>.
97846c59934SDag-Erling Smørgrav<em>Sleep.</em> 2022;45(12):zsac236.
97946c59934SDag-Erling Smørgravdoi:<a href="https://doi.org/10.1093/sleep/zsac236">10.1093/sleep/zsac236</a>.
98046c59934SDag-Erling SmørgravAfter reviewing the scientific literature, the Sleep Research Society
98146c59934SDag-Erling Smørgravadvocates permanent standard time due to its health benefits.
98246c59934SDag-Erling Smørgrav<li>Rishi MA, Cheng JY, Strang AR <em>et al</em>.
98346c59934SDag-Erling Smørgrav<a href="https://jcsm.aasm.org/doi/10.5664/jcsm.10898">Permanent standard time
98446c59934SDag-Erling Smørgravis the optimal choice for health and safety:
985bc421551SDag-Erling Smørgravan American Academy of Sleep Medicine position statement</a>.
98646c59934SDag-Erling Smørgrav<em>J Clin Sleep Med.</em> 2024;20(1):121&ndash;125.
98746c59934SDag-Erling Smørgravdoi:<a href="https://doi.org/10.5664/jcsm.10898">10.5664/jcsm.10898</a>.
98846c59934SDag-Erling SmørgravThe AASM argues for permanent standard time due to health and safety risks
98946c59934SDag-Erling Smørgravand economic costs of both <abbr>DST</abbr> transitions and
99046c59934SDag-Erling Smørgravpermanent <abbr>DST</abbr>.</li>
991bc421551SDag-Erling Smørgrav<li>Roenneberg T, Wirz-Justice A, Skene DJ <em>et al</em>.
99246c59934SDag-Erling Smørgrav<a href="https://journals.sagepub.com/doi/10.1177/0748730419854197">Why
993bc421551SDag-Erling Smørgravshould we abolish Daylight Saving Time?</a>
99446c59934SDag-Erling Smørgrav<em>J Biol Rhythms.</em> 2019;34(3):227&ndash;230.
995bc421551SDag-Erling Smørgravdoi:<a href="https://doi.org/10.1177/0748730419854197">10.1177/0748730419854197</a>.
99646c59934SDag-Erling SmørgravThe Society for Research on Biological Rhythms
997bc421551SDag-Erling Smørgravopposes DST changes and permanent DST, and advocates that governments adopt
998bc421551SDag-Erling Smørgrav"permanent Standard Time for the health and safety of their citizens".</li>
999bc421551SDag-Erling Smørgrav</ul>
1000bc421551SDag-Erling Smørgrav</section>
1001bc421551SDag-Erling Smørgrav
1002bc421551SDag-Erling Smørgrav<section>
1003bc421551SDag-Erling Smørgrav<h2 id="precision">Precision timekeeping</h2>
1004bc421551SDag-Erling Smørgrav<ul>
1005bc421551SDag-Erling Smørgrav<li><a
1006bc421551SDag-Erling Smørgravhref="http://leapsecond.com/hpan/an1289.pdf">The
1007bc421551SDag-Erling SmørgravScience of Timekeeping</a> is a thorough introduction
1008bc421551SDag-Erling Smørgravto the theory and practice of precision timekeeping.</li>
1009bc421551SDag-Erling Smørgrav<li><a href="https://doi.org/10.1007/978-3-319-59909-0">The Science of
101075411d15SDag-Erling SmørgravTime 2016</a> contains several freely readable papers.</li>
1011bc421551SDag-Erling Smørgrav<li><a href="https://www.ntp.org"><abbr
1012bc421551SDag-Erling Smørgravtitle="Network Time Protocol">NTP</abbr>: The Network
1013bc421551SDag-Erling SmørgravTime Protocol</a> (Internet <abbr>RFC</abbr> 5905)
1014bc421551SDag-Erling Smørgravdiscusses how to synchronize clocks of
1015bc421551SDag-Erling SmørgravInternet hosts.</li>
1016bc421551SDag-Erling Smørgrav<li>The <a href="https://www.usenix.org/system/files/conference/nsdi18/nsdi18-geng.pdf"><span style="font-variant: small-caps">Huygens</span></a>
1017bc421551SDag-Erling Smørgravfamily of software algorithms can achieve accuracy to a few tens of
1018bc421551SDag-Erling Smørgravnanoseconds in scalable server farms without special hardware.</li>
1019bc421551SDag-Erling Smørgrav<li>The <a
1020bc421551SDag-Erling Smørgravhref="https://www.nist.gov/intelligent-systems-division/ieee-1588">Precision
1021bc421551SDag-Erling SmørgravTime Protocol</a> (<abbr
1022bc421551SDag-Erling Smørgravtitle="Institute of Electrical and Electronics Engineers">IEEE</abbr> 1588)
1023bc421551SDag-Erling Smørgravcan achieve submicrosecond clock accuracy on a local area network
1024bc421551SDag-Erling Smørgravwith special-purpose hardware.</li>
1025bc421551SDag-Erling Smørgrav<li><a
1026bc421551SDag-Erling Smørgravhref="https://datatracker.ietf.org/doc/html/rfc4833">Timezone
1027bc421551SDag-Erling SmørgravOptions for <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr></a>
1028bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 4833)
1029bc421551SDag-Erling Smørgravspecifies a <a
1030bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"><abbr>DHCP</abbr></a>
1031bc421551SDag-Erling Smørgravoption for a server to configure
1032bc421551SDag-Erling Smørgrava client's time zone and daylight saving settings automatically.</li>
1033bc421551SDag-Erling Smørgrav<li><a href="https://www.ucolick.org/~sla/leapsecs/timescales.html">Time
1034bc421551SDag-Erling SmørgravScales</a> describes astronomical time scales like
1035bc421551SDag-Erling Smørgrav<abbr title="Terrestrial Dynamic Time">TDT</abbr>,
1036bc421551SDag-Erling Smørgrav<abbr title="Geocentric Coordinate Time">TCG</abbr>, and
1037bc421551SDag-Erling Smørgrav<abbr title="Barycentric Dynamic Time">TDB</abbr>.
1038bc421551SDag-Erling Smørgrav<li>The <a href="https://www.iau.org"><abbr
1039bc421551SDag-Erling Smørgravtitle="International Astronomical Union">IAU</abbr></a>'s <a
1040bc421551SDag-Erling Smørgravhref="https://www.iausofa.org"><abbr
1041bc421551SDag-Erling Smørgravtitle="Standards Of Fundamental Astronomy">SOFA</abbr></a>
1042bc421551SDag-Erling Smørgravcollection contains C and <a
1043bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Fortran">Fortran</a>
1044bc421551SDag-Erling Smørgravcode for converting among time scales like
1045bc421551SDag-Erling Smørgrav<abbr title="International Atomic Time">TAI</abbr>,
1046bc421551SDag-Erling Smørgrav<abbr>TDB</abbr>, <abbr>TDT</abbr> and
1047bc421551SDag-Erling Smørgrav<abbr>UTC</abbr>. It is freely available under the
1048bc421551SDag-Erling Smørgrav<a href="https://www.iausofa.org/tandc.html">SOFA license</a>.</li>
1049bc421551SDag-Erling Smørgrav<li><a
1050bc421551SDag-Erling Smørgravhref="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Mars24 Sunclock
1051bc421551SDag-Erling Smørgrav&ndash; Time on Mars</a> describes Airy Mean Time (<abbr>AMT</abbr>) and the
1052bc421551SDag-Erling Smørgravdiverse local time
1053bc421551SDag-Erling Smørgravscales used by each landed mission on Mars.</li>
1054bc421551SDag-Erling Smørgrav<li><a href="http://leapsecond.com">LeapSecond.com</a> is
1055bc421551SDag-Erling Smørgravdedicated not only to leap seconds but to precise time and frequency
1056bc421551SDag-Erling Smørgravin general. It covers the state of the art in amateur timekeeping, and
1057bc421551SDag-Erling Smørgravhow the art has progressed over the past few decades.</li>
1058bc421551SDag-Erling Smørgrav<li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
1059bc421551SDag-Erling Smørgravhref="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
1060bc421551SDag-Erling Smørgravand time-signal emissions</a>, International Telecommunication Union &ndash;
1061bc421551SDag-Erling SmørgravRadiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
1062bc421551SDag-Erling Smørgrav<li><a
1063bc421551SDag-Erling Smørgravhref="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
1064bc421551SDag-Erling Smørgravtitle="International Earth Rotation and Reference Systems Service">IERS</abbr>
1065bc421551SDag-Erling SmørgravBulletins</a> contains official publications of the International
1066bc421551SDag-Erling SmørgravEarth Rotation and Reference Systems Service, which decides when leap
1067bc421551SDag-Erling Smørgravseconds occur. The <code><abbr>tz</abbr></code> code and data support leap seconds
1068bc421551SDag-Erling Smørgravvia an optional "<code>right</code>" configuration where a computer's internal
1069bc421551SDag-Erling Smørgrav<code>time_t</code> integer clock counts every <abbr>TAI</abbr> second,
1070bc421551SDag-Erling Smørgravas opposed to the default "<code>posix</code>" configuration
1071bc421551SDag-Erling Smørgravwhere the internal clock ignores leap seconds.
1072bc421551SDag-Erling SmørgravThe two configurations agree for timestamps starting with 1972-01-01 00:00:00
1073bc421551SDag-Erling Smørgrav<abbr>UTC</abbr> (<code>time_t</code> 63&thinsp;072&thinsp;000) and diverge for
1074bc421551SDag-Erling Smørgravtimestamps starting with <code>time_t</code> 78&thinsp;796&thinsp;800,
1075bc421551SDag-Erling Smørgravwhich corresponds to the first leap second
1076bc421551SDag-Erling Smørgrav1972-06-30 23:59:60 <abbr>UTC</abbr> in the "<code>right</code>" configuration,
1077bc421551SDag-Erling Smørgravand to
1078bc421551SDag-Erling Smørgrav1972-07-01 00:00:00 <abbr>UTC</abbr> in the "<code>posix</code>" configuration.
1079bc421551SDag-Erling SmørgravIn practice the two configurations also agree for timestamps before
1080bc421551SDag-Erling Smørgrav1972 even though the historical situation is messy, partly because
1081bc421551SDag-Erling Smørgravneither <abbr>UTC</abbr> nor <abbr>TAI</abbr>
108275411d15SDag-Erling Smørgravis well-defined for sufficiently old timestamps.</li>
1083*a979394aSDag-Erling Smørgrav<li><a href="https://kb.meinbergglobal.com/kb/time_sync/ntp/configuration/ntp_leap_second_file">The
1084*a979394aSDag-Erling Smørgrav<abbr>NTP</abbr> Leap Second File</a> covers the text file
1085*a979394aSDag-Erling Smørgrav<code>leap-seconds.list</code>, which lists the currently known leap seconds.
1086*a979394aSDag-Erling SmørgravThe <abbr>IERS</abbr> maintains this file, and a copy is distributed by
1087*a979394aSDag-Erling Smørgrav<code><abbr>tzdb</abbr></code> for use by <abbr>NTP</abbr> implementations like
1088*a979394aSDag-Erling Smørgrav<a href="https://www.ntp.org">classic
1089*a979394aSDag-Erling Smørgrav<code><abbr title="Network Time Protocol Daemon">ntpd</abbr></code></a>
1090*a979394aSDag-Erling Smørgravand <a href="https://ntpsec.org">NTPsec</a>.
1091*a979394aSDag-Erling SmørgravThe <code><abbr>tz</abbr></code> database also distributes leap second
1092*a979394aSDag-Erling Smørgravinformation in a differently-formatted <code>leapseconds</code> text file,
1093*a979394aSDag-Erling Smørgravas well as in the "<code>right</code>" configuration in binary form; for
1094*a979394aSDag-Erling Smørgravexample, <code>right/UTC</code> can be used
1095*a979394aSDag-Erling Smørgravby <a href="https://chrony-project.org"><code>chrony</code></a>,
1096*a979394aSDag-Erling Smørgravanother <abbr>NTP</abbr> implementation.</li>
1097bc421551SDag-Erling Smørgrav<li><a href="https://developers.google.com/time/smear">Leap Smear</a>
1098bc421551SDag-Erling Smørgravdiscusses how to gradually adjust <abbr>POSIX</abbr> clocks near a
1099bc421551SDag-Erling Smørgravleap second so that they disagree with <abbr>UTC</abbr> by at most a
1100bc421551SDag-Erling Smørgravhalf second, even though every <abbr>POSIX</abbr> minute has exactly
1101bc421551SDag-Erling Smørgravsixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
1102bc421551SDag-Erling Smørgrav"<code>posix</code>" configuration, is <a
1103bc421551SDag-Erling Smørgravhref="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
1104*a979394aSDag-Erling Smørgravthe abovementioned <abbr>NTP</abbr> implementations, <a
1105bc421551SDag-Erling Smørgravhref="https://github.com/google/unsmear">supports</a> conversion between
1106bc421551SDag-Erling Smørgrav<abbr>UTC</abbr> and smeared <abbr>POSIX</abbr> timestamps, and is used by major
1107bc421551SDag-Erling Smørgravcloud service providers. However, according to
1108bc421551SDag-Erling Smørgrav<a href="https://datatracker.ietf.org/doc/html/rfc8633#section-3.7.1">&sect;3.7.1 of
1109bc421551SDag-Erling SmørgravNetwork Time Protocol Best Current Practices</a>
1110bc421551SDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
1111bc421551SDag-Erling Smørgravapplications requiring accurate <abbr>UTC</abbr> or civil time,
1112bc421551SDag-Erling Smørgravand is intended for use only in single, well-controlled environments.</li>
1113bc421551SDag-Erling Smørgrav<li>The <a
1114bc421551SDag-Erling Smørgravhref="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
1115bc421551SDag-Erling SmørgravSecond Discussion List</a> covers <a
1116bc421551SDag-Erling Smørgravhref="https://www2.unb.ca/gge/Resources/gpsworld.november99.pdf">McCarthy
1117bc421551SDag-Erling Smørgravand Klepczynski's 1999 proposal to discontinue leap seconds</a>,
1118bc421551SDag-Erling Smørgravdiscussed further in
1119bc421551SDag-Erling Smørgrav<a href="https://www.cl.cam.ac.uk/~mgk25/time/metrologia-leapsecond.pdf">The
1120bc421551SDag-Erling Smørgravleap second: its history and possible future</a>.
1121bc421551SDag-Erling Smørgrav<a href="https://www.ucolick.org/~sla/leapsecs/"><abbr>UTC</abbr>
1122bc421551SDag-Erling Smørgravmight be redefined
1123bc421551SDag-Erling Smørgravwithout Leap Seconds</a> gives pointers on this
112475411d15SDag-Erling Smørgravcontentious issue.
112575411d15SDag-Erling SmørgravThe General Conference on Weights and Measures
112646c59934SDag-Erling Smørgrav<a href="https://www.bipm.org/en/cgpm-2022/resolution-4">decided in 2022</a>
1127*a979394aSDag-Erling Smørgravto discontinue the use of leap seconds by 2035, and requested that no
1128*a979394aSDag-Erling Smørgravdiscontinuous adjustments be made to UTC for at least a century.
112946c59934SDag-Erling SmørgravThe World Radiocommunication Conference <a
113046c59934SDag-Erling Smørgravhref="https://www.itu.int/dms_pub/itu-r/opb/act/R-ACT-WRC.15-2023-PDF-E.pdf">resolved
113146c59934SDag-Erling Smørgravin 2023</a> to cooperate with this process.
1132*a979394aSDag-Erling Smørgrav<a href="https://www.preprints.org/manuscript/202406.0043/v1">A proposal
1133*a979394aSDag-Erling Smørgravto change the leap-second adjustments to Coordinated Universal Time</a>
1134*a979394aSDag-Erling Smørgrav(doi:<a href="https://doi.org/10.1088/1681-7575/ad6266">10.1088/1681-7575/ad6266</a>)
1135*a979394aSDag-Erling Smørgravwould replace leap seconds with 13-second leap smears occurring once per
1136*a979394aSDag-Erling Smørgravdecade until 2100, with leap smears after that gradually increasing in size.
1137*a979394aSDag-Erling SmørgravHowever, there is still no consensus on whether this is the best way
1138*a979394aSDag-Erling Smørgravto replace leap seconds.
113975411d15SDag-Erling Smørgrav</li>
1140bc421551SDag-Erling Smørgrav</ul>
1141bc421551SDag-Erling Smørgrav</section>
1142bc421551SDag-Erling Smørgrav
1143bc421551SDag-Erling Smørgrav<section>
1144bc421551SDag-Erling Smørgrav<h2 id="notation">Time notation</h2>
1145bc421551SDag-Erling Smørgrav<ul>
1146bc421551SDag-Erling Smørgrav<li>The <a id="CLDR" href="https://cldr.unicode.org">Unicode Common Locale Data
1147bc421551SDag-Erling SmørgravRepository (<abbr>CLDR</abbr>) Project</a> has localizations for time
1148bc421551SDag-Erling Smørgravzone names, abbreviations, identifiers, and formats. For example, it
1149bc421551SDag-Erling Smørgravcontains French translations for "Eastern European Summer Time",
1150bc421551SDag-Erling Smørgrav"<abbr title="Eastern European Summer Time">EEST</abbr>", and
1151bc421551SDag-Erling Smørgrav"Bucharest". Its
1152bc421551SDag-Erling Smørgrav<a href="https://unicode.org/cldr/charts/latest/by_type/">by-type
1153bc421551SDag-Erling Smørgravcharts</a> show these values for many locales. Data values are available in
1154bc421551SDag-Erling Smørgravboth <abbr title="Locale Data Markup Language">LDML</abbr>
1155bc421551SDag-Erling Smørgrav(an <abbr>XML</abbr> format) and <abbr>JSON</abbr>.
1156bc421551SDag-Erling Smørgrav<li>
1157bc421551SDag-Erling Smørgrav<a href="https://www.cl.cam.ac.uk/~mgk25/iso-time.html">A summary of
1158bc421551SDag-Erling Smørgravthe international standard date and time notation</a> covers
1159bc421551SDag-Erling Smørgrav<a
1160bc421551SDag-Erling Smørgravhref="https://www.iso.org/standard/70907.html"><em><abbr
1161bc421551SDag-Erling Smørgravtitle="International Organization for Standardization">ISO</abbr>
1162bc421551SDag-Erling Smørgrav8601-1:2019 &ndash; Date and time &ndash; Representations for information
1163bc421551SDag-Erling Smørgravinterchange &ndash; Part 1: Basic rules</em></a>.</li>
1164bc421551SDag-Erling Smørgrav<li>
1165bc421551SDag-Erling Smørgrav<a href="https://www.w3.org/TR/xmlschema/#dateTime"><abbr>XML</abbr>
1166bc421551SDag-Erling SmørgravSchema: Datatypes &ndash; dateTime</a> specifies a format inspired by
1167bc421551SDag-Erling Smørgrav<abbr>ISO</abbr> 8601 that is in common use in <abbr>XML</abbr> data.</li>
1168bc421551SDag-Erling Smørgrav<li><a href="https://datatracker.ietf.org/doc/html/rfc5322#section-3.3">&sect;3.3 of
1169bc421551SDag-Erling SmørgravInternet Message Format</a> (Internet <abbr>RFC</abbr> 5322)
1170bc421551SDag-Erling Smørgravspecifies the time notation used in email and <a
1171bc421551SDag-Erling Smørgravhref="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"><abbr>HTTP</abbr></a>
1172bc421551SDag-Erling Smørgravheaders.</li>
1173bc421551SDag-Erling Smørgrav<li>
1174bc421551SDag-Erling Smørgrav<a href="https://datatracker.ietf.org/doc/html/rfc3339">Date and Time
1175bc421551SDag-Erling Smørgravon the Internet: Timestamps</a> (Internet <abbr>RFC</abbr> 3339)
1176*a979394aSDag-Erling Smørgravspecifies an <abbr>ISO</abbr> 8601 profile for use in new Internet protocols.
1177*a979394aSDag-Erling SmørgravAn extension, <a href="https://datatracker.ietf.org/doc/html/rfc9557">Date
1178*a979394aSDag-Erling Smørgravand Time on the Internet: Timestamps with Additional Information</a>
1179*a979394aSDag-Erling Smørgrav(Internet <abbr>RFC</abbr> 9557) extends this profile
1180*a979394aSDag-Erling Smørgravto let you specify the <code><abbr>tzdb</abbr></code> timezone of a timestamp
1181*a979394aSDag-Erling Smørgravvia suffixes like "<code>[Asia/Tokyo]</code>".
1182bc421551SDag-Erling Smørgrav<li>
1183bc421551SDag-Erling Smørgrav<a href="https://web.archive.org/web/20190130042457/https://www.hackcraft.net/web/datetime/">Date &amp; Time
1184bc421551SDag-Erling SmørgravFormats on the Web</a> surveys web- and Internet-oriented date and time
1185bc421551SDag-Erling Smørgravformats.</li>
1186bc421551SDag-Erling Smørgrav<li>Alphabetic time zone abbreviations should not be used as unique
1187bc421551SDag-Erling Smørgravidentifiers for <abbr>UT</abbr> offsets as they are ambiguous in
1188bc421551SDag-Erling Smørgravpractice. For example, in English-speaking North America
1189bc421551SDag-Erling Smørgrav"<abbr>CST</abbr>" denotes 6 hours behind <abbr>UT</abbr>,
1190bc421551SDag-Erling Smørgravbut in China it denotes 8 hours ahead of <abbr>UT</abbr>,
1191bc421551SDag-Erling Smørgravand French-speaking North Americans prefer
1192bc421551SDag-Erling Smørgrav"<abbr title="Heure Normale du Centre">HNC</abbr>" to
1193bc421551SDag-Erling Smørgrav"<abbr>CST</abbr>". The <code><abbr>tz</abbr></code>
1194bc421551SDag-Erling Smørgravdatabase contains English abbreviations for many timestamps;
1195bc421551SDag-Erling Smørgravunfortunately some of these abbreviations were merely the database maintainers'
1196bc421551SDag-Erling Smørgravinventions, and these have been removed when possible.</li>
1197bc421551SDag-Erling Smørgrav<li>Numeric time zone abbreviations typically count hours east of
1198bc421551SDag-Erling Smørgrav<abbr>UT</abbr>, e.g., +09 for Japan and
1199*a979394aSDag-Erling Smørgrav&minus;10 for Hawaii. However, <abbr>POSIX</abbr> proleptic
1200*a979394aSDag-Erling Smørgrav<code><abbr>TZ</abbr></code> settings use the opposite convention.
1201bc421551SDag-Erling SmørgravFor example, one might use <code><abbr>TZ</abbr>="<abbr
1202bc421551SDag-Erling Smørgravtitle="Japan Standard Time">JST</abbr>-9"</code> and
1203bc421551SDag-Erling Smørgrav<code><abbr>TZ</abbr>="<abbr title="Hawaii Standard Time">HST</abbr>10"</code>
1204bc421551SDag-Erling Smørgravfor Japan and Hawaii, respectively. If the
1205bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> database is available, it is usually better to use
1206bc421551SDag-Erling Smørgravsettings like <code><abbr>TZ</abbr>="Asia/Tokyo"</code> and
1207bc421551SDag-Erling Smørgrav<code><abbr>TZ</abbr>="Pacific/Honolulu"</code> instead, as this should avoid
1208bc421551SDag-Erling Smørgravconfusion, handle old timestamps better, and insulate you better from
1209bc421551SDag-Erling Smørgravany future changes to the rules. One should never set
1210bc421551SDag-Erling Smørgrav<abbr>POSIX</abbr> <code><abbr>TZ</abbr></code> to a value like
1211bc421551SDag-Erling Smørgrav<code>"GMT-9"</code>, though, since this would incorrectly imply that
1212bc421551SDag-Erling Smørgravlocal time is nine hours ahead of <abbr>UT</abbr> and the time zone
1213bc421551SDag-Erling Smørgravis called "<abbr>GMT</abbr>".</li>
1214bc421551SDag-Erling Smørgrav</ul>
1215bc421551SDag-Erling Smørgrav</section>
1216bc421551SDag-Erling Smørgrav
1217bc421551SDag-Erling Smørgrav<section>
1218bc421551SDag-Erling Smørgrav<h2 id="see-also">See also</h2>
1219bc421551SDag-Erling Smørgrav<ul>
1220bc421551SDag-Erling Smørgrav<li><a href="theory.html">Theory and pragmatics of the
1221bc421551SDag-Erling Smørgrav<code><abbr>tz</abbr></code> code and data</a></li>
1222bc421551SDag-Erling Smørgrav<li><a href="tz-art.html">Time and the Arts</a></li>
1223bc421551SDag-Erling Smørgrav</ul>
1224bc421551SDag-Erling Smørgrav</section>
1225bc421551SDag-Erling Smørgrav
1226bc421551SDag-Erling Smørgrav<footer>
1227bc421551SDag-Erling Smørgrav<hr>
1228bc421551SDag-Erling SmørgravThis web page is in the public domain, so clarified as of
1229bc421551SDag-Erling Smørgrav2009-05-17 by Arthur David Olson.
1230bc421551SDag-Erling Smørgrav<br>
1231bc421551SDag-Erling SmørgravPlease send corrections to this web page to the
1232bc421551SDag-Erling Smørgrav<a href="mailto:tz@iana.org">time zone mailing list</a>.
1233bc421551SDag-Erling Smørgrav</footer>
1234bc421551SDag-Erling Smørgrav</body>
1235bc421551SDag-Erling Smørgrav</html>
1236