[LEAPSECS] Java JSR-310 Instant class: suggested changes

Gerard Ashton ashtongj at comcast.net
Sat Jan 29 10:06:33 EST 2011


I suggest the following replacement for parts of the the Instant
description. I offer the replacement because the wording of
UTC-SLS clearly only applies after 1 January 1972, and that
scale should be regarded as undefined prior to that date.

This is the Javadoc for Instant, the most widely used class. It has
86400 "seconds" per day as most users want and expect....

* <h4>Time-scale</h4> * <p> * {@code Instant} uses, beginning
1972-01-01T00:00 UTC, the
<a href="http://www.cl.cam.ac.uk/~mgk25/time/utc-sls/">UTC-SLS</a>
time-scale which always has 86 400 seconds in a day.

*Prior to 1972-01-01T00:00 UTC the time scale is universal time (UT),
each day of which shall consist of 86 400 seconds, and the precise
variant of
UT (such as UT1 or UT2) shall be application defined.

*At the transition between the UT time scale and the UTC-SLS time scale
there was a step. If UT is interpreted as UT1 then in reality at
1972-01-01T00:00 UTC
UTC-SLS = UTC; UTC - UT1 = 0.043 s.

*Due to the undesirability of steps, for purposes of this class
the approximation
1972-01-01T00:00 UT = 1972-01-01T00:00 UTC
is adopted and applications which cannot tolerate this
approximation shall not use this class.

* Essentially, UTC-SLS is a consistent mechanism of converting an
accurate UTC time....

* The UTC-SLS time-scale and UT time-scale are also used for all
human-scale date-time classes,such as {@code OffsetDateTime}

and {@code ZonedDateTime}.

* The standard Java epoch of 1970 is
prior to the introduction of whole leap seconds into UTC in 1972.
*As such, the Time Framework for Java needs to define what the 1970

> epoch actually means.

* The chosen definition is that the value of Instant for
1972-01-01T00:00 UTC is 63 072 000 seconds.

* Operations to add or subtract durations
will result in the number of nominal seconds which passed
using the UT or UTC-SLS time scale(s) in effect at the time
the duration took place, which will not necessarily be
SI seconds.

* Use {@code UTCInstant} or {@code
TAIInstant} if accurate duration calculations are required.

Gerry Ashton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://six.pairlist.net/pipermail/leapsecs/attachments/20110129/c6473cf0/attachment-0001.htm>


More information about the LEAPSECS mailing list