我正在寻找一个处理GPS时间转换的Java库.
GPS时间有一个1980年1月6日的时代,并没有闰秒,因此它与更标准的时间表示不同.以下是维基百科的相关说明:
虽然大多数时钟与协调世界时(UTC)同步,但卫星上的原子钟设置为GPS时间.不同之处在于未校正GPS时间以匹配地球的旋转,因此它不包含闰秒或定期添加到UTC的其他校正.GPS时间设定为与1980年的协调世界时(UTC)相匹配,但后来发生了分歧.缺少校正意味着GPS时间与国际原子时(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年)只重复一次,
我宁愿不必自己动手; 我没有在Joda时间看到任何表明它可以处理GPS编码日期的东西..有没有办法扩展它?
我有时间来自 1352437114052 格式的 gpslocation 服务。有人可以告诉我如何在 Java 或 Matlab 或 Excel 中将其转换为本地时间。