UNIXタイムスタンプ変換
UNIXタイムスタンプ(epoch)と日時を相互変換します。秒・ミリ秒は桁数から自動判定。値はクリックでコピーできます。
現在のタイムスタンプ
| 秒(10桁) | |
|---|---|
| ミリ秒(13桁) | |
| 日本時間 |
タイムスタンプ → 日時
| 日本時間(JST) | |
|---|---|
| 協定世界時(UTC) | |
| 今から |
日時 → タイムスタンプ
UNIXタイムスタンプとは
UNIXタイムスタンプ(epoch time)は、1970年1月1日 0時0分0秒(UTC)からの経過秒数で時刻を表す方式です。サーバーのログ、データベース、APIのレスポンスなど、コンピュータの世界では日時がこの数値で記録されていることが多く、ログ調査ではタイムスタンプと人間が読める日時の変換が頻繁に必要になります。
秒単位なら10桁(例: 1780000000)、ミリ秒単位なら13桁です。本ツールは桁数から自動判定します(12桁以上をミリ秒として解釈)。
ハマりやすいポイント
秒とミリ秒の取り違え。 date +%s や多くの言語は「秒」(10桁)ですが、JavaScriptの Date.now() や new Date() は「ミリ秒」(13桁)です。秒の値をミリ秒として渡すと1970年の直後に、ミリ秒の値を秒として渡すと数万年後になってしまいます。「変換結果が明らかにおかしい」ときは、まず桁数(10桁か13桁か)を確認してください。
タイムスタンプ自体はタイムゾーンを持たない。 epochは「UTCで1970年から数えた秒数」という1つの瞬間を表すだけで、JSTやUTCといった区別はありません。ずれて見えるのは「表示するとき、どのタイムゾーンを当てるか」の問題です。だからサーバーはUTC(またはepoch)で記録し、画面に出すときだけ日本時間に直す、という設計が定石になっています。
うるう秒は数えない。 UNIX時間は「1日=86400秒」として計算し、うるう秒(数年に一度、調整のため挿入される1秒)を無視します。厳密な物理的経過秒とはごくわずかにずれますが、通常のログ調査やアプリ開発で気にする必要はまずありません。
よくある質問
Q. ログの時刻が9時間ずれているのはなぜ?
A. UTC(協定世界時)と日本時間(JST)の時差が9時間だからです。サーバーがUTCでログを記録している場合、日本時間に直すには9時間足します。本ツールは両方を並べて表示します。
Q. 2038年問題とは?
A. タイムスタンプを32ビットの符号付き整数で扱う古いシステムでは、2038年1月19日に値が上限を超えてあふれる問題です。64ビット化された現代のシステムではほぼ解消されていますが、古い組み込み機器などでは今も注意が必要とされています。
Q. Linuxで現在のタイムスタンプを出すには?
A. date +%s です。逆変換は date -d @1780000000。PowerShellなら [DateTimeOffset]::Now.ToUnixTimeSeconds() が相当します。