[tz] [PROPOSED 3/3] Vanguard form now uses subsecond precision
Kris Breuker
kris at webhare.nl
Thu Jul 28 09:40:12 UTC 2022
> Op 28 jul. 2022, om 07:02 heeft Paul Eggert via tz <tz at iana.org> het volgende geschreven:
>
> * NEWS: Mention this.
> * africa, asia, europe, northamerica, southamerica:
> Add comments for Zone and continuation lines that should have
> subsecond precision.
> * ziguard.awk (round_to_second, get_rounding_subst):
> New functions.
> (BEGIN): New initializations.
> (DATAFORM != "main"): Use the comments to prefer subsecond
> precision in vanguard form, whole seconds otherwise.
>
> * europe (Atlantic/Madeira): Fix typo in vanguard section.
> ---
> NEWS | 10 +++++++++-
> africa | 3 ++-
> asia | 19 ++++++++++++-------
> europe | 13 +++++++------
> northamerica | 18 +++++++++++-------
> southamerica | 15 ++++++++++++++-
> ziguard.awk | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 7 files changed, 108 insertions(+), 23 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index 34621ed3..fdc87544 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -6,7 +6,7 @@ Unreleased, experimental changes
> Iran no longer observes DST after 2022.
> Rename Europe/Kiev to Europe/Kyiv.
> New zic -R option
> - Vanguard form now uses %z.
> + Vanguard form now uses %z and subsecond precision.
> New tailored_tarballs target, replacing rearguard_tarballs
>
> Changes to future timestamps
> @@ -71,6 +71,14 @@ Unreleased, experimental changes
> to use %z eventually; in the meantime maintainers of zi parsers
> are encouraged to test the parsers on vanguard.zi.
>
> + Source data in vanguard form now uses subsecond precision,
> + introduced in release 2018d. For example, for America/New_York
> + the UT offset before 1883-11-18 is now -4:56:01.6, and the
> + transition time that day is now 12:03:58.4. Although TZif files
> + have only 1-second resolution so zic rounds these values to
> + -4:56:02 and 12:03:58 respectively, programs other than zic can
> + use the extra precision in the few cases where it is available.
> +
> The Makefile has a new tailored_tarballs target for generating
> special-purpose tarballs. It generalizes and replaces the
> rearguard_tarballs target and related targets and macros, which
> diff --git a/africa b/africa
> index b398f66d..382f5794 100644
> --- a/africa
> +++ b/africa
> @@ -169,7 +169,7 @@ Link Africa/Abidjan Atlantic/St_Helena # St Helena
> # Egypt
>
> # Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh
> -# observatory; round to nearest. Milne also says that the official time for
> +# observatory. Milne also says that the official time for
> # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
> # did not apply to Cairo, Alexandria, or Port Said.
>
> @@ -354,6 +354,7 @@ Rule Egypt 2014 only - Jul 31 24:00 1:00 S
> Rule Egypt 2014 only - Sep lastThu 24:00 0 -
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF 2:05:08.9
> Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
> 2:00 Egypt EE%sT
>
> diff --git a/asia b/asia
> index ff65a048..468d2c1c 100644
> --- a/asia
> +++ b/asia
> @@ -542,7 +542,7 @@ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
> # Zhongyuan Time ("Central plain Time") UT +08
> # Now part of Asia/Shanghai.
> # most of China
> -# Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest.
> +# Milne gives 8:05:43.2 for Xujiahui Observatory time....
> # Guo says Shanghai switched to UT +08 "from the end of the 19th century".
> #
> # Long-shu Time (probably as Long and Shu were two names of the area) UT +07
> @@ -661,6 +661,7 @@ Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> # Beijing time, used throughout China; represented by Shanghai.
> + #STDOFF 8:05:43.2
> Zone Asia/Shanghai 8:05:43 - LMT 1901
> 8:00 Shang C%sT 1949 May 28
> 8:00 PRC C%sT
> @@ -672,7 +673,7 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928
>
> # Hong Kong
>
> -# Milne gives 7:36:41.7; round this.
> +# Milne gives 7:36:41.7.
>
> # From Lee Yiu Chung (2009-10-24):
> # I found there are some mistakes for the...DST rule for Hong
> @@ -856,6 +857,7 @@ Rule HK 1973 only - Dec 30 3:30 1:00 S
> Rule HK 1979 only - May 13 3:30 1:00 S
> Rule HK 1979 only - Oct 21 3:30 0 -
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF 7:36:41.7 0:36:41.7
> Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42
> 8:00 - HKT 1941 Jun 15 3:00
> 8:00 1:00 HKST 1941 Oct 1 4:00
> @@ -1331,7 +1333,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata
> #
> # From Paul Eggert (2014-09-06):
> # The 1876 Report of the Secretary of the [US] Navy, p 306 says that Batavia
> -# civil time was 7:07:12.5; round to even for Jakarta.
> +# civil time was 7:07:12.5.
> #
> # From Gwillim Law (2001-05-28), overriding Shanks & Pottenger:
> # http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime
> @@ -1367,6 +1369,7 @@ Zone Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 # Kolkata
> #
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> # Java, Sumatra
> + #STDOFF 7:07:12.5
> Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10
> # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13,
> # but this must be a typo.
> @@ -3868,7 +3871,8 @@ Zone Asia/Samarkand 4:27:53 - LMT 1924 May 2
> 6:00 - +06 1982 Apr 1
> 5:00 RussiaAsia +05/+06 1992
> 5:00 - +05
> -# Milne says Tashkent was 4:37:10.8; round to nearest.
> +# Milne says Tashkent was 4:37:10.8.
> + #STDOFF 4:37:10.8
> Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
> 5:00 - +05 1930 Jun 21
> 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00
> @@ -3887,7 +3891,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
> # The English-language name of Vietnam's most populous city is "Ho Chi Minh
> # City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters.
>
> -# From Paul Eggert (2014-10-21) after a heads-up from Trần Ngọc Quân:
> +# From Paul Eggert (2022-07-27) after a 2014 heads-up from Trần Ngọc Quân:
> # Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế kỷ XX-XXI (1901-2100)"
> # (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50,
> # is quoted verbatim in:
> @@ -3899,8 +3903,8 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
> # The 1906 transition was effective July 1 and standardized Indochina to
> # Phù Liễn Observatory, legally 104° 17' 17" east of Paris.
> # It's unclear whether this meant legal Paris Mean Time (00:09:21) or
> -# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333...
> -# and the latter 07:06:29.333... so either way it rounds to 07:06:30,
> +# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333...,
> +# the latter 07:06:29.333..., and for now guess the former,
> # which is used below even though the modern-day Phù Liễn Observatory
> # is closer to 07:06:31. Abbreviate Phù Liễn Mean Time as PLMT.
> #
> @@ -3927,6 +3931,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
> # NXB Thuận Hoá, Huế, 1995.
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF 7:06:30.133333333
> Zone Asia/Ho_Chi_Minh 7:06:40 - LMT 1906 Jul 1
> 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT
> 7:00 - +07 1942 Dec 31 23:00
> diff --git a/europe b/europe
> index ec7ac5c6..0bed8891 100644
> --- a/europe
> +++ b/europe
> @@ -303,8 +303,7 @@
> # UT-00:25:22 and cites the International Telegraph Bureau. As it is
> # not clear that there was any practical significance to the change
> # from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this
> -# transition for now and just use the latter value, omitting its
> -# fraction since our format cannot represent fractions.
> +# transition for now and just use the latter value.
>
> # "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time
> # was among various actions undertaken by the 'English' government that
> @@ -538,6 +537,7 @@ Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
> Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -0:25:21.1
> Zone Europe/Dublin -0:25:21 - LMT 1880 Aug 2
> -0:25:21 - DMT 1916 May 21 2:00s
> -0:25:21 1:00 IST 1916 Oct 1 2:00s
> @@ -1298,10 +1298,10 @@ Rule Finland 1942 only - Oct 4 1:00 0 -
> Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
> Rule Finland 1981 1982 - Sep lastSun 3:00 0 -
>
> -# Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document);
> -# round to nearest.
> +# Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document).
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF 1:39:49.2
> Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31
> 1:39:49 - HMT 1921 May # Helsinki Mean Time
> 2:00 Finland EE%sT 1983
> @@ -2304,7 +2304,6 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880
> # According to a Portuguese decree (1911-05-26)
> # https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf
> # Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00.
> -# Round the old offset to -0:36:45. This agrees with Willett....
> #
> # From Michael Deckers (2018-02-15):
> # article 5 [of the 1911 decree; Deckers's translation] ...:
> @@ -2391,6 +2390,7 @@ Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S
> Rule Port 1983 only - Mar lastSun 2:00s 1:00 S
> #
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -0:36:44.68
> Zone Europe/Lisbon -0:36:45 - LMT 1884
> -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT
> 0:00 Port WE%sT 1966 Apr 3 2:00
> @@ -3034,11 +3034,12 @@ Zone Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0:00u
> # Note: Effective 2005-12-01, (59) Perm Oblast and (81) Komi-Permyak
> # Autonomous Okrug merged to form (90, RU-PER) Perm Krai.
>
> -# Milne says Yekaterinburg was 4:02:32.9; round to nearest.
> +# Milne says Yekaterinburg was 4:02:32.9.
> # Byalokoz 1919 says its provincial time was based on Perm, at 3:45:05.
> # Assume it switched on 1916-07-03, the time of the new standard.
> # The 1919 and 1930 transitions are from Shanks.
>
> + #STDOFF 4:02:32.9
> Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3
> 3:45:05 - PMT 1919 Jul 15 4:00
> 4:00 - +04 1930 Jun 21
> diff --git a/northamerica b/northamerica
> index fb5c94bb..a8858698 100644
> --- a/northamerica
> +++ b/northamerica
> @@ -344,8 +344,7 @@ Zone PST8PDT -8:00 US P%sT
> # From Paul Eggert (2014-09-06):
> # Monthly Notices of the Royal Astronomical Society 44, 4 (1884-02-08), 208
> # says that New York City Hall time was 3 minutes 58.4 seconds fast of
> -# Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the
> -# nearest second.
> +# Eastern time (i.e., -4:56:01.6) just before the 1883 switch.
>
> # Rule NAME FROM TO - IN ON AT SAVE LETTER
> Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
> @@ -354,6 +353,7 @@ Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
> Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
> Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -4:56:01.6 12:03:58.4
> Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58
> -5:00 US E%sT 1920
> -5:00 NYC E%sT 1942
> @@ -2818,7 +2818,7 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
>
> # Barbados
>
> -# For 1899 Milne gives -3:58:29.2; round that.
> +# For 1899 Milne gives -3:58:29.2.
>
> # From P Chan (2020-12-09 and 2020-12-11):
> # Standard time of GMT-4 was adopted in 1911.
> @@ -2862,6 +2862,7 @@ Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
> Rule Barb 1979 only - Sep 30 2:00 0 S
> Rule Barb 1980 only - Sep 25 2:00 0 S
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -3:58:29.2
> Zone America/Barbados -3:58:29 - LMT 1911 Aug 28 # Bridgetown
> -4:00 Barb A%sT 1944
> -4:00 Barb AST/-0330 1945
> @@ -2922,10 +2923,10 @@ Zone America/Belize -5:52:48 - LMT 1912 Apr 1
>
> # Bermuda
>
> -# From Paul Eggert (2020-11-24):
> +# From Paul Eggert (2022-07-27):
> # For 1899 Milne gives -4:19:18.3 as the meridian of the clock tower,
> # Bermuda dockyard, Ireland I. This agrees with standard offset given in the
> -# Daylight Saving Act, 1917 cited below. Round that to the nearest second.
> +# Daylight Saving Act, 1917 cited below.
> # It is not known when this time became standard for Bermuda; guess 1890.
> # The transition to -04 was specified by:
> # 1930: The Time Zone Act, 1929 (1929: No. 39) [1929-11-08]
> @@ -3020,6 +3021,7 @@ Rule Bermuda 1956 only - May Sun>=22 2:00 1:00 D
> Rule Bermuda 1956 only - Oct lastSun 2:00 0 S
>
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -4:19:18.3
> Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton
> -4:19:18 Bermuda BMT/BST 1930 Jan 1 2:00
> -4:00 Bermuda A%sT 1974 Apr 28 2:00
> @@ -3034,7 +3036,7 @@ Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton
>
> # Costa Rica
>
> -# Milne gives -5:36:13.3 as San José mean time; round to nearest.
> +# Milne gives -5:36:13.3 as San José mean time.
>
> # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
> Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
> @@ -3046,6 +3048,7 @@ Rule CR 1991 only - Jul 1 0:00 0 S
> Rule CR 1992 only - Mar 15 0:00 0 S
> # There are too many San Josés elsewhere, so we'll use 'Costa Rica'.
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -5:36:13.3
> Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José
> -5:36:13 - SJMT 1921 Jan 15 # San José Mean Time
> -6:00 CR C%sT
> @@ -3468,7 +3471,7 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr
> # Jamaica
> # Shanks & Pottenger give -5:07:12, but Milne records -5:07:10.41 from an
> # unspecified official document, and says "This time is used throughout the
> -# island". Go with Milne. Round to the nearest second as required by zic.
> +# island". Go with Milne.
> #
> # Shanks & Pottenger give April 28 for the 1974 spring-forward transition, but
> # Lance Neita writes that Prime Minister Michael Manley decreed it January 5.
> @@ -3481,6 +3484,7 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr
> # http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647
> #
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -5:07:10.41
> Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston
> -5:07:10 - KMT 1912 Feb # Kingston Mean Time
> -5:00 - EST 1974
> diff --git a/southamerica b/southamerica
> index 7b0b084f..55336a2a 100644
> --- a/southamerica
> +++ b/southamerica
> @@ -400,6 +400,7 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
> #
> # Buenos Aires (BA), Capital Federal (CF),
> Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May # Córdoba Mean Time
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -417,6 +418,7 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
> # - Santiago del Estero switched to -4:00 on 1991-04-01,
> # then to -3:00 on 1991-04-26.
> #
> + #STDOFF -4:16:48.25
> Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> @@ -429,6 +431,7 @@ Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31
> #
> # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN)
> Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -441,6 +444,7 @@ Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31
> #
> # Tucumán (TM)
> Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -454,6 +458,7 @@ Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31
> #
> # La Rioja (LR)
> Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -468,6 +473,7 @@ Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31
> #
> # San Juan (SJ)
> Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -482,6 +488,7 @@ Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
> #
> # Jujuy (JY)
> Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -497,6 +504,7 @@ Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
> #
> # Catamarca (CT), Chubut (CH)
> Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -511,6 +519,7 @@ Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
> #
> # Mendoza (MZ)
> Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -533,6 +542,7 @@ Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
> Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
>
> Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -551,6 +561,7 @@ Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
> #
> # Santa Cruz (SC)
> Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -563,6 +574,7 @@ Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
> #
> # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF)
> Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
> + #STDOFF -4:16:48.25
> -4:16:48 - CMT 1920 May
> -4:00 - -04 1930 Dec
> -4:00 Arg -04/-03 1969 Oct 5
> @@ -1390,13 +1402,14 @@ Zone Antarctica/Palmer 0 - -00 1965
>
> # Colombia
>
> -# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
> +# Milne gives 4:56:16.4 for Bogotá time in 1899. He writes,
> # "A variation of fifteen minutes in the public clocks of Bogota is not rare."
>
> # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
> Rule CO 1992 only - May 3 0:00 1:00 -
> Rule CO 1993 only - Apr 4 0:00 0 -
> # Zone NAME STDOFF RULES FORMAT [UNTIL]
> + #STDOFF -4:56:16.4
> Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
> -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time
> -5:00 CO -05/-04
> diff --git a/ziguard.awk b/ziguard.awk
> index 91f68962..171b952d 100644
> --- a/ziguard.awk
> +++ b/ziguard.awk
> @@ -50,6 +50,35 @@ function offset_abbr(offset, \
> }
> }
>
> +# Round TIMESTAMP (a +-hh:mm:ss.dddd string) to the nearest second.
> +function round_to_second(timestamp, \
> + hh, mm, ss, seconds, dot_dddd, subseconds)
> +{
> + dot_dddd = timestamp
> + if (!sub(/^[+-]?[0-9]+:[0-9]+:[0-9]+\./, ".", dot_dddd))
> + return timestamp
> + hh = mm = ss = timestamp
> + sub(/^[-+]?[0-9]+:[0-9]+:/, "", ss)
> + sub(/^[-+]?[0-9]+:/, "", mm)
> + sub(/^[-+]?/, "", hh)
> + seconds = 3600 * hh + 60 * mm + ss
> + subseconds = +dot_dddd
> + seconds += 0.5 < subseconds || ((subseconds == 0.5) && (seconds % 2));
> + return sprintf("%s%d:%.2d:%.2d", timestamp ~ /^-/ ? "-" : "", \
> + seconds / 3600, seconds / 60 % 60, seconds % 60)
> +}
> +
> +function get_rounding_subst(time, subst)
> +{
> + if (DATAFORM == "vanguard") {
> + subst[0] = round_to_second(time)
> + subst[1] = time
> + } else {
> + subst[0] = time
> + subst[1] = round_to_second(time)
> + }
> +}
> +
> BEGIN {
> dataform_type["vanguard"] = 1
> dataform_type["main"] = 1
> @@ -57,6 +86,9 @@ BEGIN {
>
> # The command line should set DATAFORM.
> if (!dataform_type[DATAFORM]) exit 1
> +
> + stdoff_subst[0] = 0
> + until_subst[0] = 0
> }
>
> /^Zone/ { zone = $2 }
> @@ -175,6 +207,27 @@ DATAFORM != "main" {
> }
> }
>
> + # Prefer subseconds in vanguard form, whole seconds otherwise.
> + if ($1 == "#STDOFF") {
> + get_rounding_subst($2, stdoff_subst)
> + if ($3) {
> + get_rounding_subst($3, until_subst)
> + } else {
> + until_subst[0] = 0
> + }
> + } else if (stdoff_subst[0]) {
> + stdoff_column = 2 * /^Zone/ + 1
> + stdoff_column_val = $stdoff_column
> + if (stdoff_column_val == stdoff_subst[0]) {
> + $stdoff_column = stdoff_subst[1]
> + if (until_subst[0] && $NF == until_subst[0]) {
> + $NF = until_subst[1]
> + }
> + } else if (stdoff_column_val != stdoff_subst[1]) {
> + stdoff_subst[0] = 0
> + }
> + }
> +
> if (DATAFORM == "rearguard") {
>
> # In rearguard form, change the Japan rule line with "Sat>=8 25:00"
> --
> 2.34.1
>
The attached patch applies subsecond precision to Amsterdam Mean Time (GMT+19:32.13), probably missed because the comment didn’t use the word ‘round’.
Kind regards,
Kris Breuker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Apply-subsecond-precision-to-Amsterdam-Mean-Time.patch
Type: application/octet-stream
Size: 911 bytes
Desc: not available
URL: <http://mm.icann.org/pipermail/tz/attachments/20220728/373b5a5e/attachment.obj>
More information about the tz
mailing list