GPS Time Converter

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 まで増えました。たとえば 2005 年(オフセットが 13 だった頃)の GPS 時刻を、今日の 18 秒の値で変換すると小さな誤差が生じます。高精度の歴史的作業では、その GPS 時刻に有効だったうるう秒数を適用してください。今日の変換では 18 秒オフセットが正しいです。

  • オフセットの歴史:0 秒(1980)→ 13 秒(2006)→ 16 秒(2012)→ 17 秒(2015)→ 18 秒(2017)
  • GPS 週のロールオーバー(1024 週)も週ベースの解析を混乱させうる
  • 受信機は通常すでに UTC を出力する。生の GPS 時刻は主に RINEX や暦データに現れる

関連するタイムスタンプ形式コンバーター

GPS 週番号とうるう秒の歴史

生の GPS 時刻を扱う開発者を悩ませるものが 2 つあります:

  • 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(パルス・パー・セカンド)信号は UTC 秒ではなく GPS 秒に整列する

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 タイムスタンプを得ます。