Standards that explicitly support UTC
SQL92 wins the award for earliest standard that I've found that correctly specifies support for UTC. It explicitly states that time contents should be UTC and that a minute may have 59, 60, or 61 seconds. (Actual implementations have not always complied with this part of the standard.)
W3C clarified XML's time format in the 2002 version to make clear that time should support UTC and that a minute may have 59, 60, or 61 seconds. Unfortunately, it was silent in earlier versions. Worse yet, the early drafts incorrectly stated that there were 60 seconds in a minute.
DICOM clarified it's time format in 2005 to make clear that time should support UTC and that a minute may have 59, 60, or 61 seconds. Unfortunately, it was self-contradictory in earlier versions. It said both that UTC should be supported and that a minute had 60 seconds.
Update: Michael Decker (in comments) notes that ANSI C 1988 got this right. So it's the new winner. As with SQL, actual implementations have not always complied with the standard.
Standards that are self-contradictory
The ANSI HISPP MSDS work for healthcare in 1992 was self-contradictory. It stated that time should be UTC, and that a minute contained 60 seconds. This was copied either directly or by reference into HL7, DICOM, and other medical standards.
The IEEE POSIX interface standard is similarly self-contradictory, stating both that time should be UTC and the minute contains 60 seconds. (There are many different implementation variations and there is no assurance that a UNIX system implements this aspect of POSIX.)
Standards that are silent agnostic
The ISO 8601 is silent agnostic, and a great many other standards use the 8601 standard as a reference for time formats. 8601 merely requires that there be from 1 to 99 seconds in a minute. The problem is that everyone "knows" that there are always 60 seconds in a minute.
Update: It documents the formatting of leap seconds. As a format specification, it does not have application behavior requirements on how to implement support.
Next: What healthcare needs
ISO 8601 does describe leap seconds, at least in the 2001 and 2004 editions.
Posted by: Tony Finch | November 30, 2008 at 02:47 PM
The first ANSI C standard (approved 1988-12-07)
already allows for up to two leap seconds in the
member tm_sec of struct tm ([ANSI X 3.159, page 171]).
Two successive leap seconds were never allowed by
the (then) CCITT and the ICU. The successor standards
of C (1999) and of SQL (1999) thus reduced the allowed
seconds values to < 60.
Posted by: Michael Deckers | December 01, 2008 at 07:32 AM