Subject: [Tzdist-bis] Fwd: New Version Notification for draft-murchison-tzdist-tzif-03.txt

From: Ken Murchison <[email-masked]>
Date: Tue, 29 May 2018 14:58:04 -0400

This includes new definitions for GMT and UT which are referred to 
elsewhere in the document.  These probably need review.  It also has a 
definition for Time Zone Data which needs review.

This also includes most, if not all, or Paul's edits.

-------- Forwarded Message --------
Subject: 	New Version Notification for draft-murchison-tzdist-tzif-03.txt
Date: 	Tue, 29 May 2018 11:56:07 -0700
From: 	[email-masked]
To: 	Arthur David Olson <[email-masked]>, Paul Eggert 
<[email-masked]>, Ken Murchison <[email-masked]>, Arthur 
Olson <[email-masked]>, Kenneth Murchison 
<[email-masked]>

A new version of I-D, draft-murchison-tzdist-tzif-03.txt
has been successfully submitted by Kenneth Murchison and posted to the
IETF repository.

Name:		draft-murchison-tzdist-tzif
Revision:	03
Title:		The Time Zone Information Format (TZif)
Document date:	2018-05-29
Group:		Individual Submission
Pages:		16
URL:            https://www.ietf.org/internet-drafts/draft-murchison-tzdist-tzif-03.txt
Status:         https://datatracker.ietf.org/doc/draft-murchison-tzdist-tzif/
Htmlized:       https://tools.ietf.org/html/draft-murchison-tzdist-tzif-03
Htmlized:       https://datatracker.ietf.org/doc/html/draft-murchison-tzdist-tzif
Diff:           https://www.ietf.org/rfcdiff?url2=draft-murchison-tzdist-tzif-03

Abstract:
    This document defines the Time Zone Information Format (TZif) for
    representing and exchanging time zone information, independent of any
    particular service or protocol.  A MIME media type for this format is
    also defined.

Open Issues

    o  Need to review definitions of terms.

    o  Should we require TZDIST servers to always return a particular
       format (2 or 3) with/without leap seconds?  Or should we allow the
       client to choose what they want (via parameters on the MIME type)?

    o  Is the MIME registration complete and correct (e.g. any security
       or privacy considerations)?

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat

---

From: Eliot Lear <[email-masked]>
Date: Tue, 29 May 2018 22:23:06 +0200

Hi Ken,

This draft looks pretty darn good.  Two things:

Not sure why UT was needed in terms.  Not even sure we really need GMT.

With this:

> If 'isutccnt' is zero (0), all
>       transition times associated with local time types are assumed to
>       be specified as local time.

I think we're also saying that if isutccnt either = 0 or = typecnt or
something's gone wrong.  If I'm not wrong, maybe the thing to say, is
"UTC/local indicators are either zero or indexed by typecnt."

?

Eliot

On 29.05.18 20:58, Ken Murchison wrote:
> _______________________________________________
> Tzdist-bis mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tzdist-bis

---

From: Ken Murchison <[email-masked]>
Date: Tue, 29 May 2018 16:41:36 -0400

> Not sure why UT was needed in terms.  Not even sure we really need GMT. 

I added them because Paul added text which uses those terms and I felt 
we shouldn't use them without defining them.  I'm happy to remove them 
if they aren't needed.

> "UTC/local indicators are either zero or indexed by typecnt."

The definition of 'isutccnt' is this:

               A four-octet unsigned integer specifying the number of
               UTC/local indicators contained in the data block -
               MUST either be zero or equal to 'typecnt'.

>> elsewhere in the document.  These probably need review.  It also has 
>> a definition for Time Zone Data which needs review.
>>
>> URL:https://www.ietf.org/internet-drafts/draft-murchison-tzdist-tzif-03.txt
>> Status:https://datatracker.ietf.org/doc/draft-murchison-tzdist-tzif/
>> Htmlized:https://tools.ietf.org/html/draft-murchison-tzdist-tzif-03
>> Htmlized:https://datatracker.ietf.org/doc/html/draft-murchison-tzdist-tzif
>> Diff:https://www.ietf.org/rfcdiff?url2=draft-murchison-tzdist-tzif-03
>>
>> Abstract:

-- 
Ken Murchison
Cyrus Development Team
FastMail US LLC

---

From: Paul Eggert <[email-masked]>
Date: Tue, 29 May 2018 14:43:12 -0700

> Not sure why UT was needed in terms.  Not even sure we really need GMT. 

Something like the notion of "UT" is needed because UTC is defined only 
for timestamps starting in 1960. In tzcode I use the abbreviation "UT" 
to stand for universal time before 1960 and UTC thereafter, with the 
exact flavor of "universal time" (UT1? something else) not specified 
because we don't much care. This corresponds to the BBC definition of 
"GMT" except that before 1925 GMT days started at noon not midnight, and 
the switchover from the old to the new GMT was so confusing that 
eventually the name "Universal Time" was coined to mean new GMT (I'm not 
sure, but I expect the BBC used "new" GMT even before 1925).

The above is no doubt too much detail for this spec. Still, I take your 
point that the spec doesn't need both "UT" and "GMT". Given the problems 
with "GMT", I suggest that we standardize on "UT" as tzcode has. 
Proposed patch attached.

--- draft-murchison-tzdist-tzif-03.txt	2018-05-29 11:55:31.000000000 -0700
+++ draft-murchison-tzdist-tzif-03-ut.txt	2018-05-29 14:37:28.210808176 -0700
@@ -94,8 +94,8 @@
 
 1.  Introduction
 
-   Time zone data typically consists of an offset from Universal
-   Coordinated Time (UTC), daylight saving transition rules, one or more
+   Time zone data typically consists of offsets from Universal
+   Time (UT), daylight saving transition rules, one or more
    local time designations (acronyms or abbreviations), and optional
    leap second adjustments.  One such format for conveying this
    information is iCalendar [RFC5545].  It is a text-based format used
@@ -128,25 +128,20 @@
 
    The following terms are used in this document:
 
-   Coordinated Universal Time (UTC):  The time at the prime meridian (0
-      degrees longitude) as determined by atomic clocks and the Earth's
-      rotational time.
+   Coordinated Universal Time (UTC):  The basis for civil time since
+      1960.  It is approximately equal to mean solar time at the prime
+      meridian (0 degrees longitude).
 
    Daylight Saving Time (DST):  The time according to a location's law
       or practice, adjusted as necessary from standard time.  The
       adjustment may be positive, negative, or zero.
 
-   Greenwich Mean Time (GMT):  The time at the Royal Observatory in
-      Greenwich, London as determined by the Earth's rotational time.
-      GMT was formerly used as the international civil time standard,
-      but has been superseded by Coordinated Universal Time (UTC).
-
-   International Atomic Time (TAI):  The time at the prime meridian (0
-      degrees longitude) based on a continuous counting of atomic clock
-      seconds.
+   International Atomic Time (TAI):  The time standard based on atomic
+      clocks.  It is equal to UTC except without leap second
+      adjustments.
 
    Local Time:  The time according to a locations's current time zone
-      offset from Coordinated Universal Time.
+      offset from Universal Time.
 
    Standard Time:  The time according to a location's law or practice,
       unadjusted for Daylight Saving Time.
@@ -154,7 +149,7 @@
    Time Change:  A change to civil timekeeping practice.  It occurs when
       one or more of the following happen simultaneously:
 
-      1.  a change in UTC offset
+      1.  a change in UT offset
 
       2.  a change in whether standard or daylight saving time is in use
 
@@ -172,22 +167,25 @@
 
    Time Zone Data:  The Time Zone Data Distribution Service (TZDIST)
       [RFC7808] defines "Time zone data" as "data that defines a single
-      time zone, including an identifier, UTC offset values, DST rules,
+      time zone, including an identifier, UT offset values, DST rules,
       and other information such as time zone abbreviations."  The
       interchange format defined in this document is one such form of
       time zone data.
 
-   Universal Time (UT):  The time at the prime meridian (0 degrees
-      longitude) as determined by the Earth's rotational time.  UT was
-      formerly used as the international civil time standard, but has
-      been superseded by Coordinated Universal Time (UTC).
+   Universal Time (UT):  The basis of civil time.  This is the
+      principal form of the mean solar time at the prime meridian (0
+      degrees longitude) for timestamps before UTC was introduced in
+      1960, and is UTC for timestamps thereafter.  Although UT is
+      sometimes called "UTC" or "GMT" in other sources, this
+      specification uses the term "UT" to avoid confusion with UTC or
+      with GMT.
 
    UNIX Time:  The time as returned by the C time() function (see
       Section 3 of the "System Interfaces" Volume of [POSIX]).  This is
       an integer number of seconds since the POSIX Epoch (1970-01-01
       00:00:00 UTC) not counting leap seconds.  As an extension to
       POSIX, negative values represent times before the POSIX Epoch,
-      using UTC and its predecessors such as GMT and UT.
+      using UT.
 
    Wall Time:  The time as shown on a clock set according to a
       location's law or practice.
@@ -198,7 +196,7 @@
    (Section 3.1) followed by a variable-length data block (Section 3.2)
    using four-octet (32-bit) transition times and leap second
    occurrences.  These 32-bit values are limited to representing times
-   from 1901-12-13 20:45:52 GMT through 2038-01-19 03:14:07 UTC.
+   from 1901-12-13 20:45:52 through 2038-01-19 03:14:07 UT.
 
    The TZif header contains a field which specifies the version of the
    file's format.  Version 1 files terminate after the 32-bit data
@@ -287,7 +285,7 @@
        +---------------+---+---------------------------------------+
        |           [unused - reserved for future use] (15)         |
        +---------------+---------------+---------------+-----------+
-       |  isutccnt (4) |  isstdcnt (4) |  leapcnt  (4) |
+       |  isutcnt (4)  |  isstdcnt (4) |  leapcnt  (4) |
        +---------------+---------------+---------------+
        |  timecnt  (4) |  typecnt  (4) |  charcnt  (4) |
        +---------------+---------------+---------------+
@@ -320,8 +318,8 @@
          variable as defined in Section 8 of the "Base Definitions"
          Volume of [POSIX].
 
-   isutccnt:  A four-octet unsigned integer specifying the number of
-      UTC/local indicators contained in the data block - MUST either be
+   isutcnt:  A four-octet unsigned integer specifying the number of
+      UT/local indicators contained in the data block - MUST either be
       zero or equal to 'typecnt'.
 
    isstdcnt:  A four-octet unsigned integer specifying the number of
@@ -380,7 +378,7 @@
         +---------------------------------------------------------+
         |  standard/wall indicators  (isstdcnt)                   |
         +---------------------------------------------------------+
-        |  UTC/local indicators      (isutccnt)                   |
+        |  UT/local indicators       (isutcnt)                    |
         +---------------------------------------------------------+
 
                               TZif Data Block
@@ -412,11 +410,11 @@
       format:
 
       +---------------+-+-+---+
-      |  utcoff (4)   |dst|idx|
+      |  utoff (4)    |dst|idx|
       +---------------+---+---+
 
-      utcoff:  A four-octet signed integer specifying the number of
-         seconds to be added to UTC in order to determine local time.
+      utoff:  A four-octet signed integer specifying the number of
+         seconds to be added to UT in order to determine local time.
 
       (is)dst:  A one-octet value indicating whether local time should
          be considered Daylight Savings Time (DST).  A value of one (1)
@@ -477,14 +475,14 @@
       zero (0), all transition times associated with local time types
       are assumed to be specified as wall time.
 
-   UTC/local indicators:  A series of one-octet values indicating
+   UT/local indicators:  A series of one-octet values indicating
       whether the transition times associated with local time types were
-      specified as UTC or local time, and are used when a TZif file is
+      specified as UT or local time, and are used when a TZif file is
       used in handling POSIX-style "TZ" environment variables.  A value
-      of one (1) indicates UTC, and the corresponding standard/wall
+      of one (1) indicates UT, and the corresponding standard/wall
       indicator MUST also be set to one (1).  A value of zero (0)
       indicates local time.  The number of values is specified by the
-      'isutccnt' field in the header.  If 'isutccnt' is zero (0), all
+      'isutnt' field in the header.  If 'isutcnt' is zero (0), all
       transition times associated with local time types are assumed to
       be specified as local time.
 
@@ -570,8 +568,8 @@
          This represents a time zone that observes daylight saving time
          from 22:00 on the day before March's last Sunday until 23:00 on
          the day before October's last Sunday.  Standard time is 3 hours
-         west of UTC and is abbreviated "-03"; daylight saving time is 2
-         hours west of UTC and is abbreviated "-02".
+         west of UT and is abbreviated "-03"; daylight saving time is 2
+         hours west of UT and is abbreviated "-02".
 
    o  DST is considered to be in effect all year if it starts January 1
       at 00:00 and ends December 31 at 24:00 plus the difference between
@@ -580,7 +578,7 @@
 
       Example: EST5EDT,0/0,J365/25
          This represents a time zone that observes daylight saving time
-         all year.  It is 4 hours west of UTC and is abbreviated "EDT".
+         all year.  It is 4 hours west of UT and is abbreviated "EDT".
 
 4.  Use with the Time Zone Data Distribution Service

---

From: Ken Murchison <[email-masked]>
Date: Wed, 30 May 2018 00:18:56 -0400

On 05/29/2018 05:43 PM, Paul Eggert wrote:
> Something like the notion of "UT" is needed because UTC is defined 
> only for timestamps starting in 1960. In tzcode I use the abbreviation 
> "UT" to stand for universal time before 1960 and UTC thereafter, with 
> the exact flavor of "universal time" (UT1? something else) not 
> specified because we don't much care. This corresponds to the BBC 
> definition of "GMT" except that before 1925 GMT days started at noon 
> not midnight, and the switchover from the old to the new GMT was so 
> confusing that eventually the name "Universal Time" was coined to mean 
> new GMT (I'm not sure, but I expect the BBC used "new" GMT even before 
> 1925).
>
> The above is no doubt too much detail for this spec. Still, I take 
> your point that the spec doesn't need both "UT" and "GMT". Given the 
> problems with "GMT", I suggest that we standardize on "UT" as tzcode 
> has. Proposed patch attached.

The patch yields this:

"UNIX Time:
    The time as returned by the C time() function (see Section 3 of the
    "System Interfaces" Volume of [POSIX]
    <http://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi#POSIX>). This is
    an integer number of seconds since the POSIX Epoch (1970-01-01
    00:00:00 UTC) not counting leap seconds. As an extension to POSIX,
    negative values represent times before the POSIX Epoch, using UT and
    its predecessors such as GMT and UT."

I assume we can now drop the "predecessors" part.

-- 
Ken Murchison
Cyrus Development Team
FastMail US LLC

---

From: Paul Eggert <[email-masked]>
Date: Wed, 30 May 2018 00:36:28 -0700

> I assume we can now drop the "predecessors" part.

Yes, and the patch I sent dropped that phrase. See:

https://www.ietf.org/mail-archive/web/tzdist-bis/current/msg00071.html

Perhaps there was some problem applying this patch?

It does appear that the file that you have is not the same as the file I 
patched. Here's the file I patched:

https://tools.ietf.org/id/draft-murchison-tzdist-tzif-03.txt

Should I be patching some other file?

---

From: Ken Murchison <[email-masked]>
Date: Wed, 30 May 2018 07:37:31 -0400

On 05/30/2018 03:36 AM, Paul Eggert wrote:
> It does appear that the file that you have is not the same as the file 
> I patched. Here's the file I patched:
>

I'm essentially patching by hand since I'm working with XML as the source.

-- 
Ken Murchison
Cyrus Development Team
FastMail US LLC