AbsoluteTime
supposedly reports the "total number of seconds" between two dates, but it does not. For example, because of the leap second applied at 2012-06-30T23:59:60Z,
AbsoluteTime[{2012, 7, 1}] - AbsoluteTime[{2012, 6, 29}]
should be 172,801
, but it returns 172,800
. In fact, Mathematica seems to ignore leap seconds altogether:
DateList[{2012, 6, 30, 23, 59, 60.5}, TimeZone -> 0]
produces {2012, 7, 1, 5, 0, 0.5}
when it should produce {2012, 6, 30, 23, 59, 60.5}
.
Am I missing something here? How are calculations and functions, such as AstronomicalData
, that depend on accurate time specifications supposed to work?
Update: This remains the case in version 9.0 and 10.0.2.
Update: Without ever directly acknowledging this as a bug, Wolfram has now notified me that this "issue has been resolved" in 12.1 — 8 years later (though in fact it appears not to have actually been fixed).
AbsoluteTime
is a bit of a misnomer: it's really "DifferenceBetweenCalendarDatesConvertedToSeconds". $\endgroup$AstronomicalData
: leap seconds are ignored and time is just ticking away according to a uniform clock, but not UTC, so that the data reported byAstronomicalData
for a given (*Mathematica) "date" will actually be the data for a different UTC date (what the world outside *Mathematica *means by "date") some seconds away. But that leaves the question: which date? $\endgroup$