# [Bug 2129] R-140: dateTime order relation and leap seconds

From: <bugzilla@wiggum.w3.org>
Date: Fri, 09 Sep 2005 16:23:33 +0000

Cc:
Message-Id: <E1EDlf3-0000JR-Gn@wiggum.w3.org>
```
http://www.w3.org/Bugs/Public/show_bug.cgi?id=2129

Summary: R-140: dateTime order relation and leap seconds
Product: XML Schema
Version: 1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: XSD Part 2: Datatypes
AssignedTo: cmsmcq@w3.org
ReportedBy: sandygao@ca.ibm.com

Consider the dateTime of the last leap second:

1998-12-31T23:59:60Z (P)

This instant in time can also have the lexical representation of, for example,

1998-12-31T22:59:60-01:00 (Q)

Section 3.2.7.3 defines the algoritm for comparing two dateTimes as follows:

"A.Normalize P and Q. That is, if there is a timezone present, but it is not Z,
convert it to Z using the addition operation defined in Adding durations to
dateTimes (E)"

Now in our example P has a Z timezone, but Q doesn't, so we need to normalize Q
to Z using Appendix E. But E.1 says:

"Leap seconds are handled by the computation by treating them as overflows.
Essentially, a value of 60 seconds in S is treated as if it were a duration of
60 seconds added to S (with a zero seconds field). All calculations thereafter
use 60 seconds per minute."

This implies that Q is first mapped into:

1998-12-31T23:00:00-01:00

Then following the rest of algorithm in Appendix E, this will map into:

1999-01-01T00:00:00Z

Now comparing:

1998-12-31T23:59:60Z

and

1999-01-01T00:00:00Z

we find that

P < Q

But P and Q represent the same value. So we have a contradiction: two lexical
representations represent the same value, but the value represented by one
lexical representation is less than the value represented by the other lexical
representation.

See: