GPS时间表示库

我正在寻找一个处理GPS时间转换的Java库。

GPS时间有一个1980年1月6日的时代,并没有闰秒,因此它与更标准的时间表示不同。 以下是维基百科的相关说明:

虽然大多数时钟与协调世界时(UTC)同步,但卫星上的primefaces钟设置为GPS时间。 不同之处在于未校正GPS时间以匹配地球的旋转,因此它不包含闰秒或定期添加到UTC的其他校正。 GPS时间设定为与1980年的协调世界时(UTC)相匹配,但后来发生了分歧。 缺少校正意味着GPS时间与国际primefaces时(TAI)(TAI-GPS = 19秒)保持恒定的偏移。 对板载时钟执行周期性校正以校正相对论效应并使它们与地时钟保持同步。

GPS导航消息包括GPS时间和UTC之间的差异,由于闰秒在2008年12月31日添加到UTC,因此截至2009年为15秒。接收器从GPS时间减去此偏移以计算UTC和特定时区值。 在收到UTC偏移消息之前,新的GPS单元可能无法显示正确的UTC时间。 GPS-UTC偏移场可以容纳255闰秒(8位),考虑到地球自转的当前变化速率(大约每18个月引入一闰秒),应足以持续到大约2300年。

与公历的年,月,日格式相反,GPS日期表示为星期数和秒周数。 周数作为C / A和P(Y)导航消息中的十位字段发送,因此每1,024周(19.6年)它再次变为零。 GPS周0从1980年1月6日00:00:00 UTC(00:00:19 TAI)开始,周数在1999年8月21日23:59:47 UTC第一次再次变为零(00 :00:19 TAI,1999年8月22日)。 要确定当前的格里高利日期,必须为GPS接收器提供大致日期(在3,584天内)以正确转换GPS日期信号。 为了解决这个问题,现代化的GPS导航消息使用13比特的场,其仅每8,192周(157年)重复,因此持续到2137年(GPS周零后157年)。

我宁愿不必自己动手; 我没有在Joda时间看到任何表明它可以处理GPS编码日期的东西..有没有办法扩展它?

这个网站似乎在javascript中即时进行转换。 链接文字

JSR-310具有TAIInstantUTCInstant类,可以帮助解决这个问题(因为GPS时标是TAI的变体)。 它们位于ThreeTen-Extra项目中。

你能详细说明你想做什么吗?

如果您正在从GPSr读取数据,则应根据您的报价更正NMEA流的UTC漂移并由此确认。