このツールとは?
Unixタイムスタンプ(エポックタイムとも呼ばれる)とは、1970年1月1日 00:00:00(UTC)から経過した秒数を指します。 これは、コンピュータが時刻を保存するための標準的な方法です。データベース、ログファイル、API、プログラミング言語など、あらゆる場面でこれを使用しています。これは、タイムゾーンによる混乱がなく、曖昧さのない単一の数値であるためです。
2つの単位があります。秒(現在は10桁、例:1720500000)とミリ秒(13桁、JavaScriptやJavaで使用されます)です。このツールは、貼り付けた値がどちらの単位か自動的に判別します。
なぜこれを使うのか?
- ログ、データベースの行、APIの応答からタイムスタンプを即座に読み取ることができます。
- 秒とミリ秒を自動検出 — 推測の必要はありません。
- 現地時間、UTC、ISO 8601、および相対時間(「3時間前」など)を併記します。
- 双方向の変換を行います:タイムスタンプ → 日付、および日付 → タイムスタンプ。
- すぐに確認できる、現在のエポック時刻のリアルタイム表示。
使い方
- デコードするには:左側のボックスにタイムスタンプ(例:1720500000)を貼り付け、「変換」をクリックしてください。
- 結果を、現地タイムゾーン、UTC、ISO 8601、および相対時間として表示します。
- エンコードするには:右側のボックスで日付と時刻を選択し、「変換」をクリックすると、秒とミリ秒単位のタイムスタンプが表示されます。
- 単に現在のタイムスタンプが必要な場合は、上部のリアルタイム時計をご利用ください。
例
入力
1720500000出力
Local time: 7/9/2024, 1:20:00 PM
UTC time: Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000Z10桁の値は秒として扱われ、13桁の値はミリ秒として扱われます。
実用的なヒント
- 「時刻が間違っている」というバグのデバッグ:その90%はタイムゾーンの表示上の問題であり、タイムスタンプそのものが間違っているわけではありません。コードに手を加える前に、UTCの行とサーバーログ(サーバーは通常UTCでログを記録します)を照らし合わせて確認してください。
- 1970-01-01 に正確に一致する日付は、タイムスタンプが 0 であるか、または欠落していることを意味します。これは典型的な NULL 値の症状であり、実際の日付ではありません。
- 1970年頃+数日という日付は、通常、どこかで秒がミリ秒として解釈されたことを意味します。56,000年以上の日付は、その逆を意味します。
- スプレッドシートの場合:Excelは1970年からの秒数ではなく、1900年からの日数をカウントします。秒単位のタイムスタンプに変換するには、=(A1/86400)+DATE(1970,1,1) を使用してください。
実際の利用シーン
実務においてタイムスタンプが重要な場面:JWTやAPIトークンの有効期限フィールド(exp/iatはUnix秒)の読み取り、ユーザーのバグ報告時刻とサーバーログ行の照合、キャッシュのTTLやcron実行時間帯の設定、および証明書やトークンが実際に有効期限切れになっているかどうかの確認などです。 これらすべてについて、相対時間(「3時間前」など)を確認するのが、最も手っ取り早い妥当性チェックとなります。
JWTのデバッグはよくあることなので、手順を詳しく説明します。Base64ツールを使ってトークンのペイロードをデコードし、その「exp」値をここに貼り付けてください。これで、「このトークンは期限切れか、期限切れならあとどれくらいか」という疑問に即座に答えが得られます。
Unixタイムがこのように設計された理由
(年・月・日・時間の構造ではなく)固定されたエポックからの単一の連番を保存するという方法は、意図的にシンプルさを優先した選択でした。2つのタイムスタンプは単純な算術演算で比較や引き算が可能であり、 カレンダー関連のロジックを必要としないため、データベースやログ形式、そして事実上すべてのプログラミング言語の内部日付表現がこれに基づいて構築されているのです。その簡潔さに伴う代償こそが、このツールが存在する理由そのものです。人間は「1970年からの経過秒数」という単位で考えることはなく、 そのため、タイムスタンプは、それを読む人にとって意味を持つようになる前に、すべて暦日へと変換されなければなりません。そして、その変換では、タイムゾーン、精度(秒対ミリ秒)、表示形式をすべて同時に考慮する必要があります。
よくある質問
このツールは、私のタイムスタンプが秒単位なのかミリ秒単位なのかを、どうやって判別するのですか?
サイズによる。1,000,000,000,000(1e12)以上の値はミリ秒として扱われ、それより小さい値は秒として扱われます。 現在の日付は秒単位で約17億、ミリ秒単位で約1.7兆であるため、現実的な日付の範囲では、これら2つの範囲が重なることはありません。
タイムスタンプに表示される時間が、予想していた時間と異なるのはなぜですか?
タイムゾーン。タイムスタンプは常にUTCを基準としています。「現地時間」の行では、これをユーザーのデバイスのタイムゾーンに変換しています。UTCの行と、ソースシステムのログを比較してください。多くのサーバーはUTCでログを記録しています。
「2038年問題」とは何ですか?
タイムスタンプを符号付き32ビット整数として保存するシステムは、2038年1月19日にオーバーフローが発生します。最新のシステムでは64ビット整数が使用されているため、影響を受けません。このツールはJavaScriptの数値を使用しており、2038年をはるかに超える日付も処理可能です。
負のタイムスタンプを変換することはできますか?
はい。負のタイムスタンプは、1970年1月1日より前の日付を表します。たとえば、-86400は1969年12月31日です。
そのエポックには閏秒が含まれていますか?
いいえ。Unixタイムは、1日が正確に86,400秒あると仮定し、閏秒を無視しています。これは、計算を簡単にするために意図的に簡略化されたものです。