🔢 Unixタイムスタンプ変換機:エポック時間と日時
Unixタイムスタンプとは?
Unixタイムスタンプ(エポック時間とも呼ばれます)は、1970年1月1日0時0分0秒(UTC)から経過した秒数のことです。プログラミング、データベース、API、ログファイルなど、時刻をタイムゾーンに依存しない1つの数値として表す普遍的な方法として広く使われています。
Unixタイムスタンプ変換機の使い方
ページ上部のライブカウンターには、現在のUnixタイムスタンプが1秒ごとに更新されながら、対応するUTCの日時とともに常に表示されます。すでに持っているタイムスタンプを読みやすい日時に変換したい場合は「UNIX → 日時」欄に入力して「変換」をクリックし、逆に特定の日時をタイムスタンプに変換したい場合は「日時 → UNIX」欄で日時を選んで「変換」をクリックします。
なぜUnixタイムスタンプが使われるのか
時刻を書式付きの日付文字列ではなく1つの整数として保存すると、タイムゾーン、日付フォーマット、サマータイムにまつわる多くの面倒を回避できます。世界中のどんなシステムでも、タイムスタンプ同士を直接比較したり計算したりできるのは、Unixタイムスタンプがどこで読み取っても同じ瞬間を表すからです。だからこそデータベース、API、ログファイル、プログラミング言語で「いつ」を記録する標準的な方法として定着しています。
Unixタイムスタンプでよくある疑問
エポック時間を扱う際につまずきやすいポイントとして、秒単位かミリ秒単位か、タイムゾーンの情報を持っているかどうか(実は持っていません)、古いシステムでどこまで先の未来を表現できるかなどが挙げられます。以下のFAQでは、開発者や一般ユーザーがよくつまずく点をまとめています。
タイムスタンプの変換ではなく、2つの日付の間隔を知りたい場合は、日付差計算機が直接役立ちます。
よくある質問
1970年代初期のUnixオペレーティングシステムに由来し、タイムゾーンに依存しないシンプルな時刻の保存方法として考案されました。基準点(エポック)からの経過秒数を1つの整数で表します。
32ビットシステムでは、Unix時間は符号付き32ビット整数で保存されているため、2038年1月19日にオーバーフローが発生します。現代の64ビットシステムはこの影響を受けません。
標準のUnixタイムスタンプは秒単位ですが、JavaScriptのDate.now()をはじめ多くのプログラミング言語やAPIはミリ秒単位で値を返します。ミリ秒を1000で割ると標準のUnixタイムスタンプに変換できます。
いいえ。Unixタイムスタンプは常にUTCを基準としており、世界のどこで読み取っても同じ瞬間を表します。ローカルタイムに変換されるのは、読みやすい日時に変換したときだけです。
「日時 → UNIX」の欄に変換したい日時を入力して「変換」をクリックすると、お使いのブラウザのローカルタイムゾーンに基づいたUnixタイムスタンプが表示されます。
プログラミング、データベース、API、ログファイルなどで広く使われています。タイムゾーンや日付の表記方法を気にせずに時刻を保存・比較できる、コンパクトで曖昧さのない方法だからです。