Java GPS时间表示库

Java GPS时间表示库,java,datetime,time,jodatime,Java,Datetime,Time,Jodatime,我正在寻找一个Java库来处理与的转换 GPS时间的历元为1980年1月6日,没有闰秒,因此它不同于更标准的时间表示。以下是维基百科的相关描述: 虽然大多数时钟与协调世界时(UTC)同步,但卫星上的原子钟设置为GPS时间。不同之处在于GPS时间没有进行校正以匹配地球自转,因此它不包含闰秒或其他定期添加到UTC的校正。1980年,GPS时间被设定为与协调世界时(UTC)相匹配,但此后出现了分歧。缺少校正意味着GPS时间与国际原子时(TAI)保持恒定偏移(TAI-GPS=19秒)。对车载时钟进行周期

我正在寻找一个Java库来处理与的转换

GPS时间的历元为1980年1月6日,没有闰秒,因此它不同于更标准的时间表示。以下是维基百科的相关描述:

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

GPS导航信息包括GPS时间和UTC时间之间的差异,由于UTC 2008年12月31日增加了闰秒,截至2009年为15秒。接收机从GPS时间中减去该偏移量,以计算UTC和特定时区值。在收到UTC偏移信息之前,新GPS装置可能不会显示正确的UTC时间。GPS-UTC偏移字段可容纳255闰秒(8位),考虑到地球自转的当前变化率(大约每18个月引入一个闰秒),其应足以持续到大约2300年

与公历的年、月和日格式不同,GPS日期表示为周数,秒表示为周数。周数作为10位字段在C/a和P(Y)导航消息中传输,因此每1024周(19.6年)它再次变为零。全球定位系统第零周开始于1980年1月6日UTC 00:00:00(泰国时间00:00:19),1999年8月21日UTC 23:59:47(泰国时间1999年8月22日00:00:19)第一次将周数变为零。要确定当前的公历日期,必须向GPS接收器提供大致日期(在3584天内),以正确转换GPS日期信号。为了解决这一问题,现代化的GPS导航信息使用13位字段,仅每8192周(157年)重复一次,因此持续到2137年(GPS零周后157年)


我宁愿不用自己滚;我在Joda time中没有看到任何东西表明它可以处理GPS编码的日期。。有什么方法可以扩展它吗?

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


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

此网站似乎正在使用javascript动态进行转换

JSR-310具有类
TAIInstant
UTCInstant
,这将有助于解决此问题(因为GPS时标是TAI的一种变体)。这些都位于项目中。

该网站似乎正在使用javascript动态进行转换。谢谢,我使用这个网站来构建我自己的Java库代码来进行转换。@I82你能详细说明一下你使用这个网站是什么意思吗?我查看了源代码以了解他在做什么并将其转换为Java@I82Much你可以把你的密码作为你自己问题的答案吗?对不起,它属于我以前的雇主。