代码之家  ›  专栏  ›  技术社区  ›  I82Much

GPS时间表示库

  •  11
  • I82Much  · 技术社区  · 15 年前

    我正在寻找一个Java库来处理转换到/来自 GPS Time .

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

    虽然大多数时钟与协调世界时(UTC)同步,但卫星上的原子钟设置为GPS时间。不同之处在于,GPS时间没有根据地球自转进行校正,因此它不包含闰秒或其他定期添加到UTC的校正。1980年,GPS时间被设定为与协调世界时(UTC)相匹配,但此后有所不同。缺乏校正意味着GPS时间与国际原子时间(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)导航消息中以10位字段的形式传输,因此每1024周(19.6年)它再次变为零。GPS周零开始于1980年1月6日00:00:00 UTC(00:00:19 tai),1999年8月21日23:59:47 UTC(1999年8月22日00:00:19 tai)周数首次变为零。要确定当前的公历日期,必须向GPS接收器提供大致日期(至3584天内),以正确转换GPS日期信号。为了解决这一问题,现代化的GPS导航信息使用一个13位字段,该字段仅每8192周(157年)重复一次,因此持续到2137年(GPS第0周后157年)。

    我不想自己滚;我在佐达时间里看不到任何东西表明它可以处理GPS编码的日期。有没有办法延长?

    3 回复  |  直到 9 年前
        1
  •  2
  •   GinoA    15 年前

    这个网站似乎在用javascript进行转换。 link text

        2
  •  3
  •   JodaStephen    9 年前

    JSR-310有类 TAIInstant UTCInstant 这将有助于解决这个问题(因为GPS时间尺度是TAI的一个变化)。它们位于 ThreeTen-Extra 项目。

        3
  •  0
  •   GinoA    15 年前

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

    如果您正在从GPSR读取数据,则应根据您的报价对NMEA流的UTC漂移进行修正,并由 this .