No worries, this stuff is a bit complicated.

Roughly speaking, there are two major time standards: UT & TT. UT is "astronomer" time, based on the rotation of the earth. TT is "physicist" time, based on ticking clocks. They have different units: a UT second is really an angle, and a TT second is the usual SI second.

UTC is a clever attempt to bridge these two systems.

When Joda says "leap seconds are not supported", what they mean is "we implement UT".

When you say "leap seconds are supported", what you mean is "we implement TT". As a result, you can define

```
GPSTime(t::UTCDateTime) = t.instant.ms - 62451648009000
```

Passing a timestamp like "1939-10-28 09:00:00 GMT" to Joda works because GMT is part of the UT family. Passing the same timestamp to your code requires a conversion from UT -> TT. This correction is called [ΔT](http://en.wikipedia.org/wiki/%CE%94T), and it isn't being applied.