When it comes to finding a standard to smooth UTC in order to hide leap seconds for purposes of the Java Instant class, I would be tempted to find a computer architecture that handles leap seconds properly, and propose a standard that can be implemented as easily as possible on that architecture. Reward the architecture that does it right and punish the architecture that does it wrong.

One architecture that appears to do it right, if you want it to, is the IBM mainframe z-series. There is a Redbook that describes how it works in great detail:

http://publib-b.boulder.ibm.com/abstracts/sg242070.html?Open

However, the Redbook concentrates on how the hardware clocks are affected, and does not explain fully how this is carried through to application programs. A further complication appears to be that various installations seem to be able to set their computers to keep track of leap seconds or not. Any timing error, whether a leap second when leap second handling is turned off, or from a different source, can be resolved by steering the system clock. Steering will fix a 1 second error in about 12 hours. Steering is invisible to the operating system and application programs.

So the IBM approach might be too flexible for Java; it would probably be impractical to allow Java to work differently at different installations.

Windows and Unix have general reputations of not doing it right; does anyone know of a hardware/operating system combination that handles leap seconds correctly? If so, does it have a defined approach to providing a quasi-UTC that hides leap seconds to applications that wish to live in blissful ignorance?

Gerry Ashton
_______________________________________________
LEAPSECS mailing list
LEAPSECS@leapsecond.com
http://six.pairlist.net/mailman/listinfo/leapsecs

Reply via email to