Unixタイムスタンプ変換
秒またはミリ秒のUnixタイムスタンプを任意のタイムゾーンの日時に変換します。逆の変換もできます。
現在のUnix時間
—
Unixタイムスタンプは、1970年1月1日(UTC)からの秒数を数えたものです。それ自体はタイムゾーンを持たない一瞬の時点なので、同じ数値でもパリと東京では時計の時刻が異なります。必要なタイムゾーンを選べば、どちらの向きにも変換できます。
仕組み
13桁以上のタイムスタンプはミリ秒として読み取ります。JavaScript、Java、そして多くのログ形式が出力するのはミリ秒です。それより短いものは秒として読み取ります。この判定に頼りたくない場合は、単位を明示的に指定してください。
逆向きの変換では、テキストに独自のオフセットが含まれていない限り、日時は選んだタイムゾーンで解釈されます。含まれている場合はそのオフセットが優先されます。「now」や「+1 day」のような相対的な表現は受け付けません。同じリンクを2回読み込むたびに変わる結果は、共有できる結果ではないからです。
夏時間は現行のタイムゾーンデータベースに基づいて適用されるため、同じタイムゾーンでも7月と1月の時点ではオフセットが異なることがあります。
例
| ケース | 入力 | 結果 |
|---|---|---|
| 秒単位のタイムスタンプをUTCで読む | 1767225600 | 2026-01-01T00:00:00Z |
| 同じ時点をミリ秒で | 1767225600000 | 2026-01-01T00:00:00Z |
よくある質問
秒とミリ秒のどちらですか?
PHP、Python、Go、dateコマンドは秒を使い、JavaScript、Java、多くのJSON APIはミリ秒を使います。現在では、10桁の数値は秒、13桁の数値はミリ秒です。
日時が1時間ずれるのはなぜですか?
ほとんどの場合、タイムゾーンが明示されずに推測されたためです。タイムスタンプにタイムゾーンはなく、表示するときに選ばれます。UTCの行とローカルの行を比べると、適用されているオフセットがわかります。
2038年問題とは何ですか?
符号付き32ビットのタイムスタンプは2038年1月19日にオーバーフローします。このツールを含む現代のシステムは64ビット整数を使うので影響を受けませんが、組み込み機器や古いデータベースの列は影響を受けます。
タイムスタンプはうるう秒を数えますか?
いいえ。Unix時間はすべての日がちょうど86,400秒であるかのように扱うので、うるう秒は数えられずに吸収されます。そのため、ある時点を特定する識別子としては優れていますが、うるう秒をまたぐ物理的な経過時間を測る基準としては不向きです。
知っておきたいこと
- タイムゾーンの規則はサーバーに付属するIANAのデータベースに基づいています。そのため、そのバージョンより後に規則が変わったタイムゾーンは、更新されるまで古いままのことがあります。