⏰ Unixタイムスタンプ変換
タイムスタンプと日時を相互変換します。10桁(秒)と13桁(ミリ秒)を自動判別し、JSTとUTCを併記。ISO 8601など各種フォーマットも同時に表示するので、ログ解析やAPI開発でそのままコピーできます。
現在のUnixタイムスタンプ(秒)
----------
① タイムスタンプ → 日時 秒
② 日時 → タイムスタンプ
🔒 すべてブラウザ内で計算。入力値はサーバーに送信されません。
🕰 Unixタイムスタンプとは
1970年1月1日 00:00:00 UTC(エポック)からの経過秒数で時刻を表す方式です。「エポック秒」「エポックタイム」とも呼ばれます。
この方式が広く使われるのは、次の利点があるからです。
- タイムゾーンに依存しない。世界中どこでも同じ瞬間は同じ数値になるため、時差やサマータイムの扱いで混乱しません。
- 大小比較・差分計算が簡単。引き算するだけで経過秒数が求まります。
- 保存効率が良い。文字列の日付より少ないデータ量で保存できます。
一方で人間が読めないという欠点があり、ログを読むときにこのような変換ツールが必要になります。
🔢 10桁と13桁の見分け方
| 桁数 | 単位 | 例 | 主な出どころ |
|---|---|---|---|
| 10桁 | 秒 | 1700000000 | PHPのtime()、Unixのdate +%s、多くのAPI |
| 13桁 | ミリ秒 | 1700000000000 | JavaScriptのDate.now()、JavaのSystem.currentTimeMillis() |
| 16桁 | マイクロ秒 | 1700000000000000 | Pythonの一部ライブラリ、高精度ログ |
取り違えたときの症状:ミリ秒の値を秒として解釈すると「53000年頃」の遠い未来に、逆に秒の値をミリ秒として解釈すると「1970年1月20日頃」になります。日付が明らかにおかしいときは、まず桁数を疑ってください。本ツールは桁数から自動判別し、上のバッジに判定結果を表示します。
💻 言語別の取得・変換コード
| 言語 | 現在のタイムスタンプ | 単位 |
|---|---|---|
| JavaScript | Math.floor(Date.now()/1000) | 秒(Date.now()は ミリ秒) |
| Python | int(time.time()) | 秒 |
| PHP | time() | 秒 |
| Java | System.currentTimeMillis() | ミリ秒 |
| Ruby | Time.now.to_i | 秒 |
| Go | time.Now().Unix() | 秒 |
| MySQL | UNIX_TIMESTAMP() | 秒 |
| シェル | date +%s | 秒 |
❓ よくある質問
- Q. 2038年問題とは?
- タイムスタンプを32ビット符号付き整数で扱うシステムでは、2038年1月19日 03:14:07 UTCを超えると値があふれ、1901年などの負の日付になる問題です。現在の64ビット環境では実質問題ありませんが、古い組み込み機器やレガシーなDB定義(MySQLの
TIMESTAMP型など)では注意が必要です。 - Q. タイムゾーンはどう扱われますか?
- タイムスタンプ自体はUTC基準の単一の数値で、タイムゾーンを持ちません。表示のときに初めて関係します。本ツールはJST(UTC+9)とUTCを併記するので、ログがどちらで記録されているかの確認に使えます。
- Q. 負のタイムスタンプは使えますか?
- 1970年より前の日時を表します(例:
-86400は1969年12月31日)。本ツールも対応していますが、システムによっては負の値を扱えないことがあります。 - Q. うるう秒はどう扱われますか?
- Unixタイムスタンプはうるう秒を無視する仕様です(1日は常に86400秒として扱われます)。そのため厳密な天文時刻とはわずかにずれます。
- Q. 日付の差を計算したい
- 2つのタイムスタンプを引き算すれば秒数の差が出ます。カレンダー日付での日数計算は日数計算ツールが便利です。