diff options
Diffstat (limited to 'tz-link.html')
-rw-r--r-- | tz-link.html | 90 |
1 files changed, 67 insertions, 23 deletions
diff --git a/tz-link.html b/tz-link.html index 1f893f6..10c40b5 100644 --- a/tz-link.html +++ b/tz-link.html @@ -215,13 +215,18 @@ generated <a href="https://github.com/timparenti/tzdata-meta">automatically</a>. If your government plans to change its time zone boundaries or daylight saving rules, inform <code>tz@iana.org</code> well in advance, as this will coordinate updates to many cell phones, -computers, and other devices around the world. With -less than a year's notice there is a good chance that some -computer-based clocks will operate incorrectly after the change, due +computers, and other devices around the world. +The change should be officially announced at least a year before it affects +how clocks operate; otherwise, there is a good chance that some +clocks will operate incorrectly after the change, due to delays in propagating updates to software and data. The shorter the notice, the more likely clock problems will arise; see "<a href="https://codeofmatt.com/2016/04/23/on-the-timing-of-time-zone-changes/">On the Timing of Time Zone Changes</a>" for examples. +The <code><abbr>tz</abbr></code> data can represent planned changes +far into the future, and a long-planned change can easily be reverted +or otherwise altered with a year's notice before the change would have +affected clocks. </p> <p> Changes to the <code><abbr>tz</abbr></code> code and data are often @@ -240,13 +245,12 @@ href="https://play.google.com/store/apps/details?id=com.google.android.timezone. <a href="http://userguide.icu-project.org/datetime/timezone"><abbr title="International Components for Unicode">ICU</abbr></a>, -<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr></a> -and <a -href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">Oracle</a> -Java, <a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a +<a href="https://developer.ibm.com/javasdk/support/dst/jtzu/"><abbr>IBM</abbr> +JDK</a>, +<a href="https://www.joda.org/joda-time/tz_update.html">Joda-Time</a>, <a href="https://dev.mysql.com/doc/refman/en/time-zone-support.html">MySQL</a>, -and <a -href="https://nodatime.org/userguide/tzdb">Noda Time</a> (see below). +<a href="https://nodatime.org/userguide/tzdb">Noda Time</a>, and <a +href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html#usage">OpenJDK/Oracle JDK</a>. </p> <p>Sources for the <code><abbr>tz</abbr></code> database are <a href="https://en.wikipedia.org/wiki/UTF-8"><abbr @@ -307,6 +311,12 @@ time and zones.</li> <a href="https://timezoneconverterapp.com">Time Zone Converter</a> and <a href="https://www.worldclock.com">The World Clock</a> are time zone converters.</li> +<li><a href="https://timezonedb.com/download">TimeZoneDB Database</a> +publishes <code><abbr>tzdb</abbr></code>-derived data in +<a href="https://en.wikipedia.org/wiki/Comma-separated_values"><abbr +title="comma-separated values">CSV</abbr></a> and +in <a href="https://en.wikipedia.org/wiki/SQL"><abbr +title="Structured Query Language">SQL</abbr></a> form.</li> <li><a href="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a> lets you see the <code><abbr>TZ</abbr></code> values directly.</li> @@ -339,6 +349,8 @@ href="https://tools.ietf.org/html/rfc7808">TZDIST</a> along with <a href="https://tools.ietf.org/html/rfc7809">CalDAV</a> (Internet <abbr>RFC</abbr> 7809), a calendar access protocol for transferring time zone data by reference. +<a href="https://devguide.calconnect.org/Time-Zones/TZDS/">TZDIST +implementations</a> are available. The <a href="https://www.ietf.org/mailman/listinfo/tzdist-bis">tzdist-bis mailing list</a> discussed the Internet draft <a id="TZDIST-Geolocate" @@ -423,9 +435,13 @@ freely available under the <abbr>MIT</abbr> license.</li> <li>Java-based compilers and libraries include: <ul> <li>The <a -href="https://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html">TZUpdater +href="https://www.oracle.com/java/technologies/javase/tzupdater-readme.html">TZUpdater tool</a> compiles <code><abbr>tz</abbr></code> source into the format used by -Oracle Java.</li> +<a href="https://openjdk.java.net/">OpenJDK</a> and +<a href="https://jdk.java.net/">Oracle JDK</a>. +Although its source code is proprietary, its executable is available under the +<a href="https://www.oracle.com/a/tech/docs/tzupdater-lic.html">Java SE +Timezone Updater License Agreement</a>.</li> <li>The <a href="https://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html">Java SE 8 Date and Time</a> <abbr>API</abbr> can be supplemented by <a @@ -438,11 +454,10 @@ and time <abbr>API</abbr></a> contains a class Java 8 <code>java.time</code>, which its users should migrate to once they can assume Java 8 or later. It is available under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li> -<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a>, -<a href="https://github.com/akashche/tzdbgen">tzdbgen</a>, and <a +<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a> and <a href="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a> -are other alternatives to TZUpdater. IANA Updater's license is unclear; -the others are licensed under the <abbr>GPL</abbr>.</li> +are alternatives to TZUpdater. IANA Updater's license is unclear; +ZIUpdater is licensed under the <abbr>GPL</abbr>.</li> <li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and time library for Android</a> and <a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date, @@ -460,9 +475,16 @@ Java-based libraries.</li> time <abbr>API</abbr> for .NET</a> is like Joda-Time and Time4J, but for the .NET framework instead of Java. It is freely available under the Apache License.</li> -<li><a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>-based -compilers and libraries include: +<li>Many modern +<a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a> +runtimes support <code><abbr>tz</abbr></code> natively via the +<samp>timeZone</samp> option of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat"><samp>Intl.DateTimeFormat</samp></a>. +On other runtimes, you can use one of the following. <ul> +<li>The <a +href="https://github.com/formatjs/date-time-format-timezone"><samp>Intl.DateTimeFormat</samp> +timezone polyfill</a> +is freely available under a <abbr>BSD</abbr>-style license.</li> <li><a href="https://github.com/kshetline/compact-time-zone-generator">CompactTimeZoneGenerator</a> compiles time zone data into a compact form designed for @@ -472,6 +494,9 @@ the <abbr>MIT</abbr> license and the Apache License.</li> plugin for the <a href="https://momentjs.com">Moment.js</a> date manipulation library. It is freely available under the <abbr>MIT</abbr> license.</li> +<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a +JavaScript library that supports date arithmetic that is time zone +aware. It is freely available under the <abbr>MIT</abbr> license.</li> <li><a href="https://github.com/mde/timezone-js">TimezoneJS.Date</a>'s <abbr>API</abbr> is upward compatible with standard JavaScript Dates. It is freely available under the Apache License.</li> @@ -492,7 +517,10 @@ It is freely available under a <abbr>BSD</abbr>-style license.</li> <li><a href="http://pytz.sourceforge.net">pytz – World Timezone Definitions for Python</a> compiles <code><abbr>tz</abbr></code> source into <a href="https://www.python.org">Python</a>. -It is freely available under a <abbr>BSD</abbr>-style license.</li> +It is freely available under a <abbr>BSD</abbr>-style license. +In code that can assume Python 3.9 or later it is superseded by +<a href="#python-zoneinfo"><code>zoneinfo.ZoneInfo</code></a> +and the <a href="#pypi-tzdata"><code>tzdata</code> Python package</a>.</li> <li><a href="https://tzinfo.github.io">TZInfo – Ruby Timezone Library</a> compiles <code><abbr>tz</abbr></code> source into @@ -549,9 +577,6 @@ title="PHP: Hypertext Preprocessor">PHP</abbr></a>, <a href="https://hhvm.com"><abbr title="HipHop Virtual Machine">HHVM</abbr></a>, and <a href="https://www.mongodb.com">MongoDB</a>. It is freely available under the <abbr>MIT</abbr> license.</li> -<li><a href="https://github.com/bigeasy/timezone">Timezone</a> is a -JavaScript library that supports date arithmetic that is time zone -aware. It is freely available under the <abbr>MIT</abbr> license.</li> <li>Tcl, mentioned <a href="#Tcl">above</a>, also contains a <abbr>TZif</abbr> file reader.</li> <li><a href="https://metacpan.org/pod/DateTime::TimeZone::Tzfile"> @@ -559,6 +584,17 @@ DateTime::TimeZone::Tzfile</a> is a <abbr>TZif</abbr> file reader written in Perl. It is freely available under the same terms as Perl (dual <abbr>GPL</abbr> and Artistic license).</li> +<li>Python has a <a id="python-zoneinfo" +href="https://docs.python.org/3.9/library/zoneinfo.html"><code>zoneinfo.ZoneInfo</code> +class</a> that reads <abbr>TZif</abbr> data and creates objects +that represent <code><abbr>tzdb</abbr></code> timezones. +Python is freely available under the +<a href="https://docs.python.org/3.9/license.html">Python Software Foundation +License</a>. +A companion <a id="pypi-tzdata" href="https://pypi.org/">PyPI</a> module +<a href="https://pypi.org/project/tzdata/"><code>tzdata</code></a> +supplies TZif data if the underlying system data cannot be found; +it is freely available under the Apache License.</li> <li>The public-domain <a href="https://github.com/dbaron/tz.js">tz.js</a> library contains a Python tool that @@ -740,7 +776,7 @@ href="https://www.geonames.org/export/web-services.html#timezone">GeoNames Timezone web service</a>, the <a href="https://developers.google.com/maps/documentation/timezone/intro">Google Maps Time Zone API</a>, and -the <a href="https://timezonedb.com">Time Zone Database & API</a>. +the <a href="https://timezonedb.com/api">TimeZoneDB API</a>. Commercial network API access is provided by <a href="https://askgeo.com">AskGeo</a> and <a href="https://www.geogarage.com/blog/news-1/post/geogarage-time-zone-api-31">GeoGarage</a>. @@ -892,7 +928,8 @@ href="http://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflan <h2 id="costs">Costs and benefits of time shifts</h2> <p>Various sources argue for and against daylight saving time and time zone shifts, and many scientific studies have been conducted. This -section summarizes reviews of scientific literature in the area.</p> +section summarizes reviews and position statements based on +scientific literature in the area.</p> <ul> <li>Carey RN, Sarma KM. <a href="https://bmjopen.bmj.com/content/7/6/e014319.long">Impact of @@ -910,6 +947,13 @@ doi:<a href="https://doi.org/10.5547/01956574.39.2.thav">10.5547/01956574.39.2.t This analyzes research literature and concludes, "Electricity savings are larger for countries farther away from the equator, while subtropical regions consume more electricity because of DST."</li> +<li>Rishi MA, Ahmed O, Barrantes Perez JH <em>et al</em>. +<a href="https://jcsm.aasm.org/doi/10.5664/jcsm.8780">Daylight saving time: +an American Academy of Sleep Medicine position statement</a>. +<em>J Clin Sleep Med.</em> +2020;<a href="https://doi.org/10.5664/jcsm.8780">10.5664/jcsm.8780</a>. +This argues for permanent standard time due to health risks of both +DST transitions and permanent DST.</li> <li>Roenneberg T, Winnebeck EC, Klerman EB. <a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6692659/">Daylight saving time and artificial time zones – a battle between |