From 8eeefc360913ce56f8759c33b31e00542a0d3078 Mon Sep 17 00:00:00 2001 From: Stuart Bishop Date: Sun, 2 Oct 2022 15:50:54 +1100 Subject: Squashed 'tz/' changes from b61a7acb4..82693eb52 0fc8f915a Release 2022d 43d32e3a6 tzselect.ksh: mention nawk (the one true awk) 2d49828e3 * asia: Add Palestine URL (thanks to Heba Hamad). 1a0e30a84 Tweak expression of Palestine transition b6e732290 Fix NEWS typo in previous change c42d108da Palestine transitions are now Saturdays at 02:00 92e33b2fb backzone: Uzhhorod comment fix (thanks to Garrett Wollman) d25f00b73 * europe: Comment fix (thanks to Philip Paeps). 2ea205765 Fix commentary in previous change 4dffd914c Simplify three Ukraine zones to one 54e8becfa Additional sourcing for Crimea 2014 switch a339d366d * southamerica: Add decree (thanks to Eduardo Romero Urra). aca1a7057 Fix some post-1970 PACKRATLIST glitches ce4d77644 Release 2022c 747f4a0e1 Spelling/capitalization fixes 4307b3a9d Update some documentation and commentary aa7019f99 Prefer " to ' in HTML attributes c9ba895d3 Remove zoneinfo2tdf.pl e5f99199f Improve tzselect behavior for Turkey etc. 0b9b27e60 Fix bug with 'zic -d /a/b/c' if /a is unwriteable d7f86ac32 Port .txt generation to macOS e8171130f Work around macOS awk bug git-subtree-dir: tz git-subtree-split: 82693eb525a29a10ec95e9fddf31cb683b124d32 --- Makefile | 9 +++--- NEWS | 47 ++++++++++++++++++++++++++++++- asia | 34 +++++++++++++++-------- backward | 2 ++ backzone | 58 ++++++++++++++++++++++++++++++++++++--- europe | 58 +++++++-------------------------------- newctime.3 | 5 ++-- private.h | 3 ++ southamerica | 10 +++++-- theory.html | 26 ++++++++++-------- time2posix.3 | 2 +- tz-art.html | 30 ++++++++++---------- tz-link.html | 85 ++++++++++++++++++++++++++++----------------------------- tzfile.5 | 2 +- tzselect.8 | 6 ++-- tzselect.ksh | 55 +++++++++++++++++++++++++++++-------- workman.sh | 18 ++++++++---- zic.8 | 6 ++-- zic.c | 9 ++++-- ziguard.awk | 37 +++++++++++++------------ zone.tab | 2 -- zone1970.tab | 26 ++++++++++++++++-- zoneinfo2tdf.pl | 53 ----------------------------------- 23 files changed, 341 insertions(+), 242 deletions(-) delete mode 100755 zoneinfo2tdf.pl diff --git a/Makefile b/Makefile index 88240ad..b68f843 100644 --- a/Makefile +++ b/Makefile @@ -298,8 +298,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. # Similarly, if your system has a "zone abbreviation" field, define # -DTM_ZONE=tm_zone -# and define NO_TM_ZONE to suppress any guessing. These two fields are not -# required by POSIX, but are widely available on GNU/Linux and BSD systems. +# and define NO_TM_ZONE to suppress any guessing. Although these two fields +# not required by POSIX, a future version of POSIX is planned to require them +# and they are widely available on GNU/Linux and BSD systems. # # The next batch of options control support for external variables # exported by tzcode. In practice these variables are less useful @@ -538,7 +539,7 @@ DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ leapseconds $(ZONETABLES) AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ ziguard.awk zishrink.awk -MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl +MISC= $(AWK_SCRIPTS) TZS_YEAR= 2050 TZS_CUTOFF_FLAG= -c $(TZS_YEAR) TZS= to$(TZS_YEAR).tzs @@ -567,7 +568,7 @@ VERSION_DEPS= \ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ workman.sh zdump.8 zdump.c zic.8 zic.c \ ziguard.awk zishrink.awk \ - zone.tab zone1970.tab zoneinfo2tdf.pl + zone.tab zone1970.tab # And for the benefit of csh users on systems that assume the user # shell should be used to handle commands in Makefiles. . . diff --git a/NEWS b/NEWS index 6a0d5c5..64327d0 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,50 @@ News for the tz database +Release 2022d - 2022-09-23 12:02:57 -0700 + + Briefly: + Palestine transitions are now Saturdays at 02:00. + Simplify three Ukraine zones into one. + + Changes to future timestamps + + Palestine now springs forward and falls back at 02:00 on the + first Saturday on or after March 24 and October 24, respectively. + This means 2022 falls back 10-29 at 02:00, not 10-28 at 01:00. + (Thanks to Heba Hamad.) + + Changes to past timestamps + + Simplify three Ukraine zones to one, since the post-1970 + differences seem to have been imaginary. Move Europe/Uzhgorod and + Europe/Zaporozhye to 'backzone'; backward-compatibility links + still work, albeit with different timestamps before October 1991. + + +Release 2022c - 2022-08-15 17:47:18 -0700 + + Briefly: + Work around awk bug in FreeBSD, macOS, etc. + Improve tzselect on intercontinental Zones. + + Changes to code + + Work around a bug in onetrueawk that broke commands like + 'make traditional_tarballs' on FreeBSD, macOS, etc. + (Problem reported by Deborah Goldsmith.) + + Add code to tzselect that uses experimental structured comments in + zone1970.tab to clarify whether Zones like Africa/Abidjan and + Europe/Istanbul cross continent or ocean boundaries. + (Inspired by a problem reported by Peter Krefting.) + + Fix bug with 'zic -d /a/b/c' when /a is unwritable but the + directory /a/b already exists. + + Remove zoneinfo2tdf.pl, as it was unused and triggered false + malware alarms on some email servers. + + Release 2022b - 2022-08-10 15:38:32 -0700 Briefly: @@ -83,7 +128,7 @@ Release 2022b - 2022-08-10 15:38:32 -0700 zic no longer complains "can't determine time zone abbreviation to use just after until time" when a transition to a new standard - time occurs simultanously with the first DST fallback transition. + time occurs simultaneously with the first DST fallback transition. Changes to build procedure diff --git a/asia b/asia index def9b20..e0daae0 100644 --- a/asia +++ b/asia @@ -1505,8 +1505,8 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # onwards (which was during the Islamic Republic). # From Francis Santoni (2022-06-01): -# for Iran and 1977 the effective change is only 20 october -# (UIT No. 143 17.XI.1977) and not 23 september (UIT No. 141 13.IX.1977). +# for Iran and 1977 the effective change is only 20 October +# (UIT No. 143 17.XI.1977) and not 23 September (UIT No. 141 13.IX.1977). # UIT is the Operational Bulletin of International Telecommunication Union. # From Roozbeh Pournader (2003-03-15): @@ -3375,10 +3375,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # The winter time in 2015 started on October 23 at 01:00. # https://wafa.ps/ar_page.aspx?id=CgpCdYa670694628582aCgpCdY # http://www.palestinecabinet.gov.ps/portal/meeting/details/27583 -# -# From Paul Eggert (2019-04-10): -# For now, guess spring-ahead transitions are at 00:00 on the Saturday -# preceding March's last Sunday (i.e., Sat>=24). # From P Chan (2021-10-18): # http://wafa.ps/Pages/Details/34701 @@ -3395,6 +3391,18 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # From Heba Hamad (2022-03-10): # summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM. +# From Heba Hamad (2022-08-30): +# winter time will begin in Palestine from Saturday 10-29, 02:00 AM by +# 60 minutes backwards. Also the state of Palestine adopted the summer +# and winter time for the years: 2023,2024,2025,2026 ... +# https://mm.icann.org/pipermail/tz/attachments/20220830/9f024566/Time-0001.pdf +# (2022-08-31): ... the Saturday before the last Sunday in March and October +# at 2:00 AM ,for the years from 2023 to 2026. +# (2022-09-05): https://mtit.pna.ps/Site/New/1453 +# +# From Paul Eggert (2022-08-31): +# For now, assume that this rule will also be used after 2026. + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - @@ -3425,14 +3433,16 @@ Rule Palestine 2013 only - Sep 27 0:00 0 - Rule Palestine 2014 only - Oct 24 0:00 0 - Rule Palestine 2015 only - Mar 28 0:00 1:00 S Rule Palestine 2015 only - Oct 23 1:00 0 - -Rule Palestine 2016 2018 - Mar Sat>=24 1:00 1:00 S -Rule Palestine 2016 2018 - Oct Sat>=24 1:00 0 - +Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S +Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 - Rule Palestine 2019 only - Mar 29 0:00 1:00 S -Rule Palestine 2019 only - Oct Sat>=24 0:00 0 - -Rule Palestine 2020 2021 - Mar Sat>=24 0:00 1:00 S +Rule Palestine 2019 only - Oct Sat<=30 0:00 0 - +Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S Rule Palestine 2020 only - Oct 24 1:00 0 - -Rule Palestine 2021 max - Oct Fri>=23 1:00 0 - -Rule Palestine 2022 max - Mar Sun>=25 0:00 1:00 S +Rule Palestine 2021 only - Oct 29 1:00 0 - +Rule Palestine 2022 only - Mar 27 0:00 1:00 S +Rule Palestine 2022 max - Oct Sat<=30 2:00 0 - +Rule Palestine 2023 max - Mar Sat<=30 2:00 1:00 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct diff --git a/backward b/backward index e162eeb..14e4b14 100644 --- a/backward +++ b/backward @@ -90,6 +90,8 @@ Link Etc/UTC Etc/UCT Link Europe/London Europe/Belfast Link Europe/Kyiv Europe/Kiev Link Europe/Chisinau Europe/Tiraspol +Link Europe/Kyiv Europe/Uzhgorod +Link Europe/Kyiv Europe/Zaporozhye Link Europe/London GB Link Europe/London GB-Eire Link Etc/GMT GMT+0 diff --git a/backzone b/backzone index e2e124f..f623f09 100644 --- a/backzone +++ b/backzone @@ -301,7 +301,7 @@ Zone Africa/Freetown -0:53:00 - LMT 1882 -0:53:00 - FMT 1913 Jul 1 # Freetown MT -1:00 SL %s 1939 Sep 5 -1:00 - -01 1941 Dec 6 24:00 - 0:00 SL GMT/+01 + 0:00 - GMT # Botswana # From Paul Eggert (2013-02-21): @@ -1480,6 +1480,27 @@ Zone Europe/Tiraspol 1:58:32 - LMT 1880 2:00 Russia EE%sT 1992 Jan 19 2:00 3:00 Russia MSK/MSD +# Ukraine +# +# Although Shanks & Pottenger say Transcarpathia used CET 1990/1991, +# this unreliable source contradicts contemporaneous government resolutions +# (see the commentary for Ukraine in the 'europe' file) +# so for now this dubious zone is in 'backzone'. +# "Uzhhorod" is the transliteration of the Ukrainian spelling, but +# "Uzhgorod" was a common English spelling when this dubious zone was +# added to TZDB in 1999. +Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct + 1:00 - CET 1940 + 1:00 C-Eur CE%sT 1944 Oct + 1:00 1:00 CEST 1944 Oct 26 + 1:00 - CET 1945 Jun 29 + 3:00 Russia MSK/MSD 1990 + 3:00 - MSK 1990 Jul 1 2:00 + 1:00 - CET 1991 Mar 31 3:00 + 2:00 - EET 1992 Mar 20 + 2:00 C-Eur EE%sT 1996 May 13 + 2:00 EU EE%sT + # Liechtenstein # From Paul Eggert (2022-07-21): @@ -1502,6 +1523,25 @@ Zone Europe/Zagreb 1:03:52 - LMT 1884 1:00 - CET 1982 Nov 27 1:00 EU CE%sT +# Ukraine + +# Although Shanks & Pottenger say Zaporizhzhia and eastern Lugansk +# observed DST 1990/1991, this unreliable source contradicts contemporaneous +# government resolutions (see the commentary for Ukraine in the 'europe' file) +# so for now this dubious zone is in 'backzone'. +# "Zaporizhzhia" is the transliteration of the Ukrainian name, but +# "Zaporozhye" was a common English spelling when this dubious zone was +# added to TZDB in 1999. +Zone Europe/Zaporozhye 2:20:40 - LMT 1880 + 2:20 - +0220 1924 May 2 + 2:00 - EET 1930 Jun 21 + 3:00 - MSK 1941 Aug 25 + 1:00 C-Eur CE%sT 1943 Oct 25 + 3:00 Russia MSK/MSD 1991 Mar 31 2:00 + 2:00 E-Eur EE%sT 1992 Mar 20 + 2:00 C-Eur EE%sT 1996 May 13 + 2:00 EU EE%sT + # Madagascar Zone Indian/Antananarivo 3:10:04 - LMT 1911 Jul 3:00 - EAT 1954 Feb 27 23:00s @@ -1633,7 +1673,7 @@ Zone Pacific/Majuro 11:24:48 - LMT 1901 Zone Pacific/Midway -11:49:28 - LMT 1901 -11:00 - -11 1956 Jun 3 -11:00 1:00 -10 1956 Sep 2 - -11:00 - -11 + -11:00 - SST # S=Samoa # Micronesia # Also see Pacific/Chuuk and commentary for Micronesia in 'australasia'. @@ -1648,10 +1688,20 @@ Zone Pacific/Pohnpei -13:27:08 - LMT 1844 Dec 31 # Kolonia Link Pacific/Pohnpei Pacific/Ponape # N Mariana Is +# +# From Paul Eggert (2022-08-16): +# Although Shanks & Pottenger say Saipan used +09 and then switched +# to Guam time in October 1969, this is surely wrong. +# Saipan used Guam time in the late 1950s; see page 4 of the minutes on the +# conference of the 12th Saipan Legislature and the Select Committee on +# Saipan Mission, 5th Guam Legislature (1959-09-11): +# http://www.nmhcouncil.org/nmhc_archives/U.S.%20Navy%20Civil%20Affairs%20Files%201944-1962/1959/1959%2009%2017%20letter,%20minutes%20of%20conference,%20Borja.pdf +# For now, assume Saipan switched to Guam time after the Battle of Saipan. +# Zone Pacific/Saipan -14:17:00 - LMT 1844 Dec 31 9:43:00 - LMT 1901 - 9:00 - +09 1969 Oct - 10:00 - +10 2000 Dec 23 + 9:00 - +09 1944 Jul 9 + 10:00 Guam G%sT 2000 Dec 23 10:00 - ChST # Chamorro Standard Time diff --git a/europe b/europe index c3a3cc4..bb0c7cf 100644 --- a/europe +++ b/europe @@ -2615,10 +2615,14 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 # From Alexander Krivenyshev (2014-03-17): # time change at 2:00 (2am) on March 30, 2014 # https://vz.ru/news/2014/3/17/677464.html -# From Paul Eggert (2014-03-30): -# Simferopol and Sevastopol reportedly changed their central town clocks -# late the previous day, but this appears to have been ceremonial -# and the discrepancies are small enough to not worry about. +# From Tim Parenti (2022-07-01), per Paul Eggert (2014-03-30): +# The clocks at the railway station in Simferopol were put forward from 22:00 +# to 24:00 the previous day in a "symbolic ceremony"; however, per +# contemporaneous news reports, "ordinary Crimeans [made] the daylight savings +# time switch at 2am" on Sunday. +# https://www.business-standard.com/article/pti-stories/crimea-to-set-clocks-to-russia-time-114033000014_1.html +# https://www.reuters.com/article/us-ukraine-crisis-crimea-time/crimea-switches-to-moscow-time-amid-incorporation-frenzy-idUKBREA2S0LT20140329 +# https://www.bbc.com/news/av/world-europe-26806583 2:00 EU EE%sT 2014 Mar 30 2:00 4:00 - MSK 2014 Oct 26 2:00s 3:00 - MSK @@ -3751,8 +3755,8 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # US colleague David Cochrane) are still trying to get more # information upon these local deviations from Kiev rules. # -# From Paul Eggert (2022-02-08): -# For now, assume that Ukraine's other three zones followed the same rules, +# From Paul Eggert (2022-08-27): +# For now, assume that Ukraine's zones all followed the same rules, # except that Crimea switched to Moscow time in 1994 as described elsewhere. # From Igor Karpov, who works for the Ukrainian Ministry of Justice, @@ -3822,21 +3826,7 @@ Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # * Ukrainian Government's Resolution of 20.03.1992, No. 139. # http://www.uazakon.com/documents/date_8u/pg_grcasa.htm -# From Paul Eggert (2022-04-12): -# As is usual in tzdb, Ukrainian zones use the most common English spellings. -# In particular, tzdb's name Europe/Kyiv uses the most common spelling in -# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev, -# "Kyiv" is now more common due to widespread reporting of the current conflict. -# Conversely, tzdb continues to use the names Europe/Uzhgorod and -# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is -# certainly wrong as a transliteration of the Czech "Praha". -# English-language spelling of Ukrainian names is in flux, and -# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more -# common in English; in the meantime, do not change these -# English spellings as that means less disruption for our users. - # Zone NAME STDOFF RULES FORMAT [UNTIL] -# This represents most of Ukraine. See above for the spelling of "Kyiv". Zone Europe/Kyiv 2:02:04 - LMT 1880 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time 2:00 - EET 1930 Jun 21 @@ -3846,34 +3836,6 @@ Zone Europe/Kyiv 2:02:04 - LMT 1880 2:00 1:00 EEST 1991 Sep 29 3:00 2:00 C-Eur EE%sT 1996 May 13 2:00 EU EE%sT -# Transcarpathia used CET 1990/1991. -# "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but -# "Uzhgorod" is more common in English. -Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct - 1:00 - CET 1940 - 1:00 C-Eur CE%sT 1944 Oct - 1:00 1:00 CEST 1944 Oct 26 - 1:00 - CET 1945 Jun 29 - 3:00 Russia MSK/MSD 1990 - 3:00 - MSK 1990 Jul 1 2:00 - 1:00 - CET 1991 Mar 31 3:00 - 2:00 - EET 1992 Mar 20 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT -# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991. -# "Zaporizhzhia" is the transliteration of the Ukrainian name, but -# "Zaporozh'ye" is more common in English. Use the common English -# spelling, except omit the apostrophe as it is not allowed in -# portable Posix file names. -Zone Europe/Zaporozhye 2:20:40 - LMT 1880 - 2:20 - +0220 1924 May 2 - 2:00 - EET 1930 Jun 21 - 3:00 - MSK 1941 Aug 25 - 1:00 C-Eur CE%sT 1943 Oct 25 - 3:00 Russia MSK/MSD 1991 Mar 31 2:00 - 2:00 E-Eur EE%sT 1992 Mar 20 - 2:00 C-Eur EE%sT 1996 May 13 - 2:00 EU EE%sT # Vatican City # See Europe/Rome. diff --git a/newctime.3 b/newctime.3 index 1b1790f..8661549 100644 --- a/newctime.3 +++ b/newctime.3 @@ -271,8 +271,9 @@ so were made when the library containing these functions was created. Similarly, the .B tzname -variable is optional. -There is no guarantee that these fields and this variable will +variable is optional; also, there is no guarantee that +.B tzname +will continue to exist in this form in future releases of this code. .SH FILES .ta \w'/usr/share/zoneinfo/posixrules\0\0'u diff --git a/private.h b/private.h index 9b9389f..9c31ec5 100644 --- a/private.h +++ b/private.h @@ -168,6 +168,9 @@ # define EINVAL ERANGE #endif +#ifndef ELOOP +# define ELOOP EINVAL +#endif #ifndef ENAMETOOLONG # define ENAMETOOLONG EINVAL #endif diff --git a/southamerica b/southamerica index 2f2c873..2f51004 100644 --- a/southamerica +++ b/southamerica @@ -1309,8 +1309,14 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 # for America/Santiago will start on midnight of September 11th; # and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas) # will keep UTC -3 "indefinitely"... This is because on September 4th -# we will have a voting whether to approve a new Constitution.... -# https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/ +# we will have a voting whether to approve a new Constitution. +# +# From Eduardo Romero Urra (2022-08-17): +# https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/01/2172567.pdf +# +# From Paul Eggert (2022-08-17): +# Although the presidential decree stops at fall 2026, assume that +# similar DST rules will continue thereafter. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Chile 1927 1931 - Sep 1 0:00 1:00 - diff --git a/theory.html b/theory.html index 2b14c51..56390ae 100644 --- a/theory.html +++ b/theory.html @@ -122,7 +122,7 @@ If geolocation information is available, a selection interface can locate the user on a timezone map or prioritize names that are geographically close. For an example selection interface, see the tzselect program in the tz code. -The Unicode Common Locale Data +The Unicode Common Locale Data Repository contains data that may be useful for other selection interfaces; it maps timezone names like Europe/Prague to locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格". @@ -571,7 +571,7 @@ in decreasing order of importance: locations while uninhabited. The leading '-' is a flag that the UT offset is in some sense undefined; this notation is derived - from Internet + from Internet RFC 3339. @@ -624,7 +624,7 @@ Errors in the tz database arise from many sources: should be observed. In her 2015 book The + href="https://www.hup.harvard.edu/catalog.php?isbn=9780674286146">The Global Transformation of Time, 1870–1950, Vanessa Ogle writes "Outside of Europe and North America there was no system of time @@ -810,7 +810,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes See: Stephenson FR, Morrison LV, Hohenkerk CY. Measurement of the Earth's rotation: 720 BC to AD 2015. - Proc Royal Soc A. 2016 Dec 7;472:20160404. + Proc Royal Soc A. 2016;472:20160404. Also see: Espenak F. Uncertainty in Delta T (ΔT). @@ -1036,7 +1036,7 @@ an older zic. and numeric data as described above. The file's format is TZif, a timezone information format that contains binary data; see - Internet + Internet RFC 8536. The daylight saving time rules to be used for a particular timezone are encoded in the @@ -1064,11 +1064,12 @@ an older zic.
  • The code supports platforms with a UT offset member - in struct tm, e.g., tm_gmtoff. -
  • -
  • - The code supports platforms with a time zone abbreviation member in - struct tm, e.g., tm_zone. + in struct tm, e.g., tm_gmtoff, + or with a time zone abbreviation member in + struct tm, e.g., tm_zone. As noted + in Austin + Group defect 1533, a future version of POSIX is planned to + require tm_gmtoff and tm_zone.
  • Functions tzalloc, tzfree, @@ -1129,7 +1130,8 @@ The vestigial APIs are: APIs. Although it can still be used in arguments to mktime to disambiguate timestamps near - a DST transition when the clock jumps back, this + a DST transition when the clock jumps back on + platforms lacking tm_gmtoff, this disambiguation does not work when standard time itself jumps back, which can occur when a location changes to a time zone with a lesser UT offset. @@ -1277,7 +1279,7 @@ the operating system kernel clock as described in Precision timekeeping, and this package by default installs a leapseconds file commonly used by -NTP +NTP software that adjusts the kernel clock. However, kernel-clock twiddling approximates UTC only roughly, and systems needing more-precise UTC can use this package's leap diff --git a/time2posix.3 b/time2posix.3 index 2ea7edc..1fcdf9e 100644 --- a/time2posix.3 +++ b/time2posix.3 @@ -37,7 +37,7 @@ however, no such adjustment is needed and time_t values continue to increase over leap events (as a true -.q "seconds since..." +.q "seconds since...\&" value). This means that these values will differ from those required by POSIX by the net number of leap seconds inserted since the Epoch. diff --git a/tz-art.html b/tz-art.html index 73be9f9..5679534 100644 --- a/tz-art.html +++ b/tz-art.html @@ -483,19 +483,19 @@ Supernaw.

    Jokes

    @@ -621,7 +621,7 @@ but maybe in your time zone I haven't finished yet. So stay tuned!"

    See also


    diff --git a/tz-link.html b/tz-link.html index 2532069..d3b3766 100644 --- a/tz-link.html +++ b/tz-link.html @@ -1,14 +1,14 @@ -Sources for time zone and daylight saving time data +Time zone and daylight saving time data -

    Sources for time zone and daylight saving time data

    +

    Time zone and daylight saving time data

    Time zone and daylight-saving @@ -52,9 +52,9 @@ area.

  • Costs and benefits of time shifts
  • Precision timekeeping
  • Time notation
  • -
  • See also
  • +
  • See also
  • @@ -80,7 +80,7 @@ C Library (used in title="Berkeley Software Distribution">BSD, NetBSD, OpenBSD, -Chromium OS, +Chromium OS, Cygwin, MariaDB, MINIX, @@ -166,7 +166,7 @@ Since 1996, each version has been a four-digit year followed by lower-case letter (a through z, then za through zz, then zza through zzz, and so on). -Since version 1999g, each release has been distributed in +Since version 2022a, each release has been distributed in POSIX ustar interchange format, compressed as described above; older releases use a nearly-compatible format. @@ -192,7 +192,7 @@ After obtaining the code and data files, see the The code lets you compile the tz source files into machine-readable binary files, one for each location. The binary files are in a special timezone information format (TZif) -specified by Internet +specified by Internet RFC 8536. The code also lets you read a TZif file and interpret timestamps for that @@ -276,7 +276,7 @@ Studio Code.

    For further information about updates, please see -Procedures for +Procedures for Maintaining the Time Zone Database (Internet RFC 6557). More detail can be found in Theory and pragmatics of the @@ -327,10 +327,8 @@ title="Structured Query Language">SQL form. href="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway lets you see the TZ values directly.

  • Current +href="https://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current Time in 1000 Places uses descriptions of the values.
  • -
  • Time Zone Converter -uses a pulldown menu.
  • Complete timezone information for all countries displays tables of DST rules. @@ -340,8 +338,8 @@ Worldwide lets you sort zone names and convert times.
  • time map and a time converter.
  • Time Difference calculates the current time difference between locations.
  • -
  • Weather Now and -The Time Now list the weather too.
  • +
  • Weather Now and +The Time Now list the weather too.
  • @@ -351,26 +349,26 @@ calculates the current time difference between locations.
  • The Internet Engineering Task Force's Time Zone Data Distribution Service (tzdist) working group defined TZDIST +href="https://datatracker.ietf.org/doc/html/rfc7808">TZDIST (Internet RFC 7808), a time zone data distribution service, -along with CalDAV +along with CalDAV (Internet RFC 7809), a calendar access protocol for transferring time zone data by reference. TZDIST implementations are available. The tzdist-bis mailing list discusses possible extensions.
  • -
  • The +
  • The Internet Calendaring and Scheduling Core Object Specification (iCalendar) (Internet RFC 5445) covers time zone data; see its VTIMEZONE calendar component. The iCalendar format requires specialized parsers and generators; a -variant xCal +variant xCal (Internet RFC 6321) uses XML format, and a variant -jCal +jCal (Internet RFC 7265) uses JSON format.
  • @@ -413,13 +411,13 @@ transition in the tz database. Database Parser is a C++ parser and runtime library with API +href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">API adopted by C++20, the current iteration of the C++ standard. It is freely available under the MIT license. -
  • International Components for +
  • International Components for Unicode (ICU) contains C/C++ and Java libraries for internationalization that @@ -549,7 +547,7 @@ Ruby Timezone Library compiles tz source into Ruby. It is freely available under the MIT license.
  • -
  • The Chronos Date/Time +
  • The Chronos Date/Time Library is a Smalltalk class library that compiles tz source into a time @@ -798,7 +796,7 @@ political subdivision data related to time zones.
  • Time zone boundaries for multizone countries summarizes legal boundaries between time zones within countries.
  • -
  • Manifold Software +
  • Manifold Software – GIS and Database Tools includes a Manifold-format map of world time zone boundaries distributed under the GPL.
  • @@ -895,7 +893,7 @@ hreflang="he">announcements (in Hebrew).
    Mexico
    The Investigation and Analysis Service of the Mexican Library of Congress has published a history of Mexican local time (in Spanish).
    Netherlands
    lists changes to time zone boundaries.
    Uruguay
    The Oceanography, Hydrography, and Meteorology Service of the Uruguayan Navy (SOHMA) publishes an annual almanac +href="https://sohma.armada.mil.uy/index.php/servicios/datos-astronomicos" hreflang="es">almanac (in Spanish).
    @@ -947,9 +945,9 @@ This reviews research literature and concludes that the evidence neither supports nor refutes road safety benefits from shifts in time zones.
  • Havranek T, Herman D, Irsova D. -Does daylight -saving save electricity? A meta-analysis. Energy J. -2018;39(2). +Does +daylight saving save electricity? A meta-analysis. +Energy J. 2018;39(2):35–61. doi:10.5547/01956574.39.2.thav. This analyzes research literature and concludes, "Electricity savings are larger for countries farther away from the equator, while @@ -961,16 +959,14 @@ an American Academy of Sleep Medicine position statement. 2020;10.5664/jcsm.8780. This argues for permanent standard time due to health risks of both DST transitions and permanent DST.
  • -
  • Roenneberg T, Winnebeck EC, Klerman EB. -Daylight -saving time and artificial time zones – a battle between -biological and social times. Front Physiol. 2019;10:944. -doi:10.3389/fphys.2019.00944. -This reviews evidence about the health effects of DST -and concludes, -"In summary, the scientific literature strongly argues against the -switching between DST and Standard Time and even more so against -adopting DST permanently."
  • +
  • Roenneberg T, Wirz-Justice A, Skene DJ et al. +Why +should we abolish Daylight Saving Time? +J Biol Rhythms. 2019;34(3):227–230. +doi:10.1177/0748730419854197. +This position paper of the Society for Research on Biological Rhythms +opposes DST changes and permanent DST, and advocates that governments adopt +"permanent Standard Time for the health and safety of their citizens".
  • @@ -983,7 +979,7 @@ Science of Timekeeping is a thorough introduction to the theory and practice of precision timekeeping.
  • The Science of Time 2016 contains several freely-readable papers.
  • -
  • NTP: The Network Time Protocol (Internet RFC 5905) discusses how to synchronize clocks of @@ -998,7 +994,7 @@ title="Institute of Electrical and Electronics Engineers">IEEE 1588) can achieve submicrosecond clock accuracy on a local area network with special-purpose hardware.
  • Timezone +href="https://datatracker.ietf.org/doc/html/rfc4833">Timezone Options for DHCP (Internet RFC 4833) specifies a describes astronomical time scales like TDB.
  • The IAU's SOFA collection contains C and Fortran code for converting among time scales like TAI, TDB, TDT and -UTC.
  • +UTC. It is freely available under the +SOFA license.
  • Mars24 Sunclock – Time on Mars describes Airy Mean Time (AMT) and the @@ -1065,7 +1062,7 @@ the NTP reference implementation, supports conversion between UTC and smeared POSIX timestamps, and is used by major cloud service providers. However, according to -§3.7.1 of +§3.7.1 of Network Time Protocol Best Current Practices (Internet RFC 8633), leap smearing is not suitable for applications requiring accurate UTC or civil time, @@ -1089,7 +1086,7 @@ again.
  • Time notation