Unix タイムスタンプ変換

タイムスタンプか日付を貼り付けると、他のすべての表記に変換します。

現在の Unix 時間
Unix 秒
ミリ秒
ISO 8601 (UTC)
UTC
ローカル時刻
相対時間
曜日
年間通算日
ISO 週番号

Unix タイムスタンプとは

Unix タイムスタンプ(エポック時間、POSIX 時間とも呼ばれます)は、1970 年 1 月 1 日 00:00:00 UTC からうるう秒を除いて経過した秒数です。タイムゾーン、暦、ロケール形式に依存しない単一の整数であるため、コンピューターが時刻を保存・交換する最も一般的な方法になっています。データベース、ログファイル、JWT トークン、API、オペレーティングシステムのすべてがこれを使っており、開発者は 1700000000 のような生の数値と人が読める日時とを絶えず変換する必要があります。

システムによって精度は異なります。Unix とほとんどのデータベースは秒を保存します(現在は 10 桁)。JavaScript の Date.now() と Java の System.currentTimeMillis() はミリ秒(13 桁)を返します。一部のログシステムや Go の time パッケージはマイクロ秒(16 桁)やナノ秒(19 桁)を扱います。この変換ツールは桁数から単位を自動判定するため、形式を選ばずにどれでも貼り付けられます。

使い方

上部のリアルタイム時計は現在の Unix タイムスタンプを秒単位で表示し、毎秒更新されます。「コピー」で取得するか、「現在時刻を使用」で変換ツールに読み込めます。入力欄にタイムスタンプを貼り付けると、表が即座に埋まります。秒、ミリ秒、ISO 8601(ほとんどの API で使われる標準)、RFC 1123 形式の UTC 文字列、タイムゾーン名付きのローカル日時、「3 日後」「2 時間前」のような相対表現、曜日、年間通算日、ISO 週番号が表示されます。

逆方向の変換も可能です。2025-03-01、2025-03-01T14:30:00Z、March 1 2025 14:30 のような日時を入力すると、ブラウザの日付エンジンで解析され、エポック秒とミリ秒に変換されます。タイムゾーンが明示されていない日時は、JavaScript と同じくローカルタイムゾーンとして解釈されます。

タイムゾーン、ISO 8601、よくある落とし穴

タイムスタンプ自体にタイムゾーンはなく、表示形式にだけ存在します。同じ 1700000000 という値は、ロンドンでは 22:13、上海では翌日の 06:13 です。2 つのシステムの時刻がちょうど数時間ずれている場合、原因はほぼ間違いなくタイムゾーンの取り違えです。ローカルの日付文字列ではなく、Z またはオフセットを明示した ISO 8601 文字列(2024-11-14T22:13:20Z)か生のエポック数値でやり取りしてください。もう 1 つの典型的なバグは秒とミリ秒の混同です。西暦 55000 年や 1970 年の日付が出てきたら、たいてい単位の不一致で、入力欄の下の「判定」表示がどの単位と見なされたかを教えてくれます。最後に 32 ビットの制限も忘れないでください。秒を符号付き 32 ビット整数で保存しているシステムは 2038 年 1 月 19 日にオーバーフローします。

背景:なぜ 1970 年なのか

Unix エポックは 1970 年代初頭にベル研究所の Unix 開発者が選びました。初版は 1971 年から 1/60 秒単位で数えていましたが数か月でオーバーフローしたため、1970 年 1 月 1 日からの整数秒に変更されました。近い過去にある切りのよい日付だったからです。うるう秒を無視するため Unix の 1 日は常にちょうど 86,400 秒であり、計算がきわめて簡単になります。これがこの形式が Unix からあらゆるデータベース、プログラミング言語、ネットワークプロトコルへ広まった理由です。符号付き 32 ビットカウンターが一周する 2038 年問題は、この初期設計の直接的な遺産です。現代のシステムは 64 ビット値を保存しており、今後 2920 億年は安全です。

利用される場面

タイムスタンプは JWT トークン内の exp、iat、nbf クレーム、ほぼすべてのデータベースの created_at 列、大半のログ行の最初のフィールド、HTTP キャッシュヘッダー、cron やスケジューリングシステム、ブロックチェーンのブロックヘッダー、ファイルシステムのメタデータ(mtime)、そして CDN がキャッシュ済みページを再利用できるかを決める ETag/Last-Modified のロジックに使われています。サポートチケットに「エクスポートが 1718000000 に失敗した」と書かれていたら、この変換ツールで人間のカレンダー上の時刻に直せます。テストを書くときは、固定した日付をエポック秒に変換すれば、タイムゾーンに依存しない安定したアサーション値が得られます。このサイトの構造化データや、あなたが構築する JSON API では、可読性のために ISO 8601 文字列を、計算のためにエポック整数を使うべきです。

よくある質問

現在の Unix タイムスタンプを取得するには?

このページの上部にリアルタイムで表示されています。コードでは、シェルなら date +%s、JavaScript なら Math.floor(Date.now()/1000)、Python なら int(time.time()) です。

タイムスタンプは秒ですか、ミリ秒ですか?

10 桁の値は秒、13 桁の値はミリ秒です。変換ツールは長さから自動判定し、どの単位と見なしたかを表示します。

ローカル時刻にはどのタイムゾーンが使われますか?

お使いのブラウザのタイムゾーンで、時計の横に表示されます。UTC と ISO 8601 の行は常に UTC なので、他のシステムに安全に貼り付けられます。

日付が 1 日ずれるのはなぜですか?

時刻やタイムゾーンのない日付文字列はローカルの午前 0 時として解析され、UTC に変換すると日付の境界を越えることがあります。曖昧さを避けるには、時刻とタイムゾーンを明示してください(例:2025-03-01T00:00:00Z)。

負のタイムスタンプや 1970 年より前の日付に対応していますか?

はい。負の値はエポックから逆向きに数えるため、-86400 は 1969 年 12 月 31 日になります。