Unix timeとは?

Unix time(epoch timeまたはPOSIX timestampとも呼ばれます)は、1970年1月1日00:00:00 UTCからの経過時間を表します。システムによって使用する単位は異なり、Unix shell、PHP、ほとんどのデータベースでは秒、JavaScriptとJavaではミリ秒、Pythonのtime.time_ns()、Go、InfluxDBではナノ秒が使用されます。また、多くのトレーシングツールやログツールではマイクロ秒が使用されます。同じ時刻でも、秒では1700000000、ナノ秒では1700000000000000000となるため、単位を取り違えると日付が数千年ずれてしまいます。

ツールの説明

このツールは、Unix timestampを秒、ミリ秒、マイクロ秒、ナノ秒の間で変換し、その値が表す日付を表示します。timestampを貼り付けると桁数から単位が検出されます。単位を自分で選択することもできます。通常のJavaScriptの数値では大きすぎるナノ秒timestampも含め、すべての変換を正確に行います。

機能

  • 秒、ミリ秒、マイクロ秒、ナノ秒の間で1ステップで変換
  • 桁数から入力単位を検出、または入力単位を手動で選択
  • 19桁のナノ秒値でも、丸め誤差なしで完全な精度を維持
  • 小数(1700000000.123)、1970年より前の日付を表す負の値、指数表記(1.7e9)に対応
  • 整数を想定するAPI向けに、整数のみの出力を選択可能
  • UTCでISO 8601形式の日付を最大ナノ秒精度で表示し、ローカルタイムゾーンでの日付も表示
  • 不要な場合はマイクロ秒フィールドとナノ秒フィールドを非表示に設定可能

仕組み

timestampは正確な10進数として読み取られ、浮動小数点数ではなく任意精度整数を使って、ナノ秒単位の整数として保存されます。各出力では、その値を単位の大きさで割って正確な結果を書き出すため、ミリ秒から秒への変換では、丸められた値ではなく1700000000.123が得られます。「整数のみ」では、値が該当する単位に切り下げられます。これは1970年より前の日付をUnix timeで扱う方法と同じで、-1.5秒は-2になります。

単位を自動検出する場合、ツールは1973年から5138年までの日付を想定します。11桁以下は秒、12~14桁はミリ秒、15~17桁はマイクロ秒、18桁以上はナノ秒として読み取られます。

ヒント

  • 桁数による検出では、1973年3月より前のミリ秒timestampと秒timestampなど、短い値を区別できません。日付が正しくないように見える場合は、入力単位を自分で選択してください。
  • 「現在時刻」を選択すると、使用中の単位で現在の時刻が入力されます。ブラウザが提供する時刻の精度はミリ秒までなので、マイクロ秒値とナノ秒値の末尾の桁は0になります。
  • 入力内のスペースとアンダースコアは無視されるため、1_700_000_000のような値を貼り付けることができます。