GPS 转 Unix 时间戳转换器
把 GPS 转换为 Unix 时间。精确公式与大数支持。输出:秒、毫秒、ISO 8601 与可读格式。
自 1980-01-06 以来的秒数(无闰秒)
当前时间 — GPS 时间 (自 GPS 纪元以来的秒数)—
Unix 时间戳(秒)—
什么是 GPS 时间?
GPS 时间是一个连续时间尺度,始于 1980 年 1 月 6 日 00:00:00 UTC,与 UTC 不同,它从不插入闰秒。因此 GPS 时间已领先于 UTC;自 2017 年起,差值为 18 秒,并在下一次闰秒宣布前保持不变。
- 纪元:1980-01-06 00:00:00 UTC
- 无闰秒——GPS 是 SI 秒的连续计数
- GPS − UTC = 18 秒(当前,自 2017-01-01 起)
- 常表示为 GPS 周号 + 周内秒数
如何将 GPS 时间转换为 Unix 时间戳
Unix 纪元(1970)与 GPS 纪元(1980)之间相差 315,964,800 秒。加上这个偏移,再减去当前的闰秒差,使结果落在 UTC 上。
- Unix seconds = GPS + 315964800 − 18
- 示例:1384035218 → 1700000000 → 2023-11-14 22:13:20 UTC
- 反向:GPS = Unix seconds − 315964800 + 18
- 本转换器应用当前的 18 秒偏移
闰秒与精度
闰秒偏移在历史上并非恒定:1980 年为 0,已增长到 18。用今天的 18 秒值去转换例如 2005 年(当时偏移为 13)的 GPS 时间会引入小误差。对于高精度的历史工作,请应用该 GPS 时间当时有效的闰秒数。对于当下的转换,18 秒偏移是正确的。
- 偏移历史:0 秒(1980)→ 13 秒(2006)→ 16 秒(2012)→ 17 秒(2015)→ 18 秒(2017)
- GPS 周翻转(1024 周)也可能扰乱基于周的解析
- 接收机通常已经输出 UTC;原始 GPS 时间主要出现在 RINEX 和星历数据中
相关时间戳格式转换器
GPS 周号与闰秒历史
处理原始 GPS 时间的开发者会遇到两件事:
- GPS 周翻转:GPS 周号字段为 10 位(1024 周 ≈ 19.7 年)。它在 2019-04-06 翻转;下次翻转在 2038-11
- 闰秒历史:GPS−UTC 在 1980 年为 0,2006 年为 13,2012 年为 16,2015 年为 17,2017-01-01 起为 18。硬编码 18 仅对近期日期有效
- TAI(国际原子时)比 UTC 快 37 秒(GPS 的 18 个闰秒加 19 个历史调整)
- RINEX(Receiver Independent Exchange Format)头部日期是 GPS 时间,而非 UTC
- 接收机的 PPS(每秒脉冲)信号对齐到 GPS 秒,而非 UTC 秒
FAQ
- 什么是 GPS 纪元?
- GPS 时间从 1980 年 1 月 6 日 00:00:00 UTC 开始。
- 为什么 GPS 时间比 UTC 快?
- GPS 时间不包含闰秒,而 UTC 包含。自 1980 年以来,UTC 已添加 18 个闰秒,因此 GPS 目前快 18 秒。
- 如何把 GPS 时间转换为 Unix 时间?
- 加上 315,964,800 秒(1970 → 1980 的差距),并减去当前 18 秒的闰秒偏移,即可得到一个 UTC 的 Unix 时间戳。