Unixタイムスタンプ変換
Unixタイムスタンプと人間が読める日付を相互変換します。
現在のUnixタイムスタンプ
1777729731
Unixタイムスタンプ → 日付
日付 → Unixタイムスタンプ
VR
Reviewed by
Vikram RaoSenior Software Engineer
· B.Tech Computer Science· 14 years building timezone-aware systems· Open-source contributor to date-fns
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ビットへの移行を推奨します。
よくある質問
Unixタイムスタンプ(エポック時間またはPOSIX時間)は、1970年1月1日 00:00:00 UTCからうるう秒を除いた経過秒数です。タイムゾーンに依存しない普遍的な時刻表現で、ほぼすべてのプログラミング言語、データベース、APIで使用されています。
上のコンバーターにタイムスタンプを入力します。UTC、ISO 8601、ブラウザのローカル時刻、ミリ秒での表示が確認できます。例:1700000000 = 2023年11月14日 22:13:20 UTC。コードでは:JavaScriptで new Date(1700000000 * 1000)、Pythonで datetime.utcfromtimestamp(1700000000)。
Unixタイムスタンプは通常秒単位(10桁、例:1700000000)です。JavaScriptのDate.now()や多くのWeb APIはミリ秒(13桁、例:1700000000000)を返します。桁数から自動判定:10桁=秒、13桁=ミリ秒。
Unixエポックは1960年代後半のUnix開発時に選ばれました。当時の32ビット整数の範囲に収まる近くて切りの良い日付でした。負のタイムスタンプは1970年以前を表します(例:-1 = 1969年12月31日 23:59:59 UTC)。
32ビット符号付き整数の最大値(2,147,483,647)は2038年1月19日 03:14:07 UTCに対応します。32ビット整数でタイムスタンプを保存するシステムでは1秒加算するとオーバーフローし1901年に戻ります。64ビットシステムは影響を受けません。
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())。MySQL: UNIX_TIMESTAMP()。
ISO 8601は日付・時刻を文字列で表す国際標準です(例:2023-11-14T22:13:20Z、末尾ZはUTC)。Unixタイムスタンプは整数(機械向き)、ISO 8601は人間が読めてソート可能。どちらも同じ瞬間を表します。
はい。エポック以前は負の整数で表します。1900年1月1日 00:00:00 UTC = -2208988800。ほとんどの現代システムと言語は負のタイムスタンプをサポートしていますが、32ビット符号付きシステムは1901年12月13日以降に限られます。
ミリ秒精度はログ、パフォーマンス監視、金融取引、アニメーションなど1秒未満のタイミングが重要なアプリで役立ちます。API統合時は1000倍の誤差を避けるため必ずドキュメントを確認してください。
64ビット符号付き整数は最大9,223,372,036,854,775,807秒まで保持でき、約2920億年後に対応します。予見可能な将来においてUnixタイムスタンプが人類に影響を与えることはありません。