Unixタイムスタンプ変換
Unixタイムスタンプと人間が読める日付を相互変換します。
現在のUnixタイムスタンプ
1773837143
Unixタイムスタンプ → 日付
日付 → Unixタイムスタンプ
Unix時間とは?
Unix時間(エポック時間またはPOSIX時間とも呼ばれる)は、1970年1月1日 00:00:00 UTC(Unixエポック)から経過した秒数をカウントします。Unixオペレーティングシステムとともにベル研究所で標準化され、ソフトウェアの普遍的な時間表現となっています。
Unixタイムスタンプはタイムゾーンに依存しない整数なので、APIやデータベース、ログでの日付の保存・送信に最適です。人間が読める形式への変換は表示時にのみ行われ、閲覧者のローカルタイムゾーンが使われます。そのため同じタイムスタンプでもニューヨークと東京では異なる時刻が表示されます。
参照タイムスタンプ
| イベント | UTC日付 | タイムスタンプ (秒) |
|---|---|---|
| Unix Epoch | Jan 1, 1970 00:00:00 UTC | 0 |
| Y2K | Jan 1, 2000 00:00:00 UTC | 946684800 |
| iPhone launch | Jan 9, 2007 18:00:00 UTC | 1168365600 |
| 1 billion seconds | Sep 9, 2001 01:46:40 UTC | 1000000000 |
| 1.5 billion seconds | Jul 14, 2017 02:40:00 UTC | 1500000000 |
| 1.7 billion seconds | Nov 14, 2023 22:13:20 UTC | 1700000000 |
| 2038 overflow (32-bit) | Jan 19, 2038 03:14:07 UTC | 2147483647 |
コードで現在のタイムスタンプを取得
JavaScript
Math.floor(Date.now() / 1000)
Python
import time int(time.time())
PHP
time()
Go
time.Now().Unix()
Bash
date +%s
PostgreSQL
EXTRACT(EPOCH FROM NOW())
2038年問題
32ビット符号付き整数の最大値(2,147,483,647)は2038年1月19日 03:14:07 UTCに対応します。タイムスタンプを32ビット整数で保存するシステムはその瞬間にオーバーフローし、1901年に戻ってしまう可能性があります。最新の64ビットシステムは影響を受けません。Cや組み込みコードでtime_tを32ビット整数として使用している場合は、2038年までに64ビットへの移行を推奨します。