[LEAPSECS] Java JSR-310 TAIInstant class

Michael Deckers michael.deckers at yahoo.com
Sun Jan 30 15:51:06 EST 2011

On 2011-01-29 22:21, Stephen Colebourne wrote:

> What JSR-310 needs is a single time-scale that has a single

> incrementing number of fixed size units (SI seconds) with no other

> interpretations (such as what a day is). I believe that TAI best meets

> that definition today, and thus is the choice made.

IMHO, a programming language should
* recognize the fact that there are many time scales, none
of which is better or worse than the others, and for which
any given implementation may or may not provide real time
* support the relationships between time scales as they occur
in practice (eg, UTC -- TAI with lepa seconds (and milliseconds),
UTC -- time zone times, order relation of UTC timestamps,

But it should not:
* make unfounded assumptions on time scales (like any time
scale can be reliably converted to TAI and back -- TAI exists
only since 1958 but datetimes cover a much broader range);
* expose any internal constructs (like auxiliary time scales).

The goal should be to model reality as far as possible and
desirable (eg, one might decide to ignore archeological time
scales at first). Squeezing reality to a model that does not
quite fit just to make things simpler is, in the long run, bad
for users and designers. (This is the essential theme of
this list, by the way.)

I wouldn't comment on this if JAVA were not such an important
language. With your UTC-SLS time scale, for example, you prohibit
correct comparison of timestamps with nanosecond precision during
positive leap seconds. This is the typical design inconsistency
that can cause implementation errors and, ulitmately, viruses.

Michael Deckers.

More information about the LEAPSECS mailing list