I just noticed these:

   - The elapsed time values are fully metric and their relationship to the
   UTC epoch date and time is accurate. (The *gregorian_tai* case.)

If the timestamp
Is UTC, you sure don’t want to call it TAI, do you?


   - You must take leap seconds into account when converting these time
   values into UTC time stamps if you want fully accuracy.

Yes, because UTC dies include leap seconds.


   - The elapsed time values are almost certainly not fully metric and
   their relationship to the UTC epoch date and time is probably not accurate,
   but if you convert them to UTC time stamps without adding any offsets,
   using a method that does not take leap seconds into account, you will get
   UTC time stamps with full accuracy. (The *gregorian_utc* case.)

Then the timestamp is NOT UTC. I think this should be simply considered
incorrect, but it certainly shouldn’t be called something_utc, since it’s
not UTC.


   - We don't have a clue about the metricity or accuracy of the elapsed
   time values or the epoch date and time. At least not to within 37 seconds.
   And we don't care. (The updated *gregorian* case.)

I think this should be what you call your “non-metric” case._tai

UTC and TAI are well defined (at least from now into the past) if we call
it something _utc it should be UTC — and if we call it something_tai it
should be TAI.

The vast majority of files in the wild are probably thought to be UTC, but
processed with non-leap second aware libraries. And as you pint out, the
vast majority of those it doesn’t matter.

I’m less optimistic than Jim that there are people writing files that are
“UTC but processed with a non-leap second aware library” that:

- Care about full precision
- Understand what they have done enough to guarantee reversibility.

I would think that folks working with data for which this matters would
have tools and libraries that do it right.

So I propose that “gregorian” mean — “ambiguous with regard to leap
seconds”, since that’s what files in the wild are.

gregorian_utc means “truly UTC, leap seconds and all”

gregorian_tai means “truly TAI — no leap seconds”

And that it really only applies to the timestamp, as the values should have
their usual definition.

-CHB

 The only pure time is counts of SI seconds (or fractions thereof) since
some agreed starting point.

Yup — which is why CF is the way it is :-)


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/148#issuecomment-434558980

Reply via email to