開発者 🔒 ブラウザ内で動作 — データは送信されません

Unixタイムスタンプ変換

Unixタイムスタンプを読みやすい日時に、またその逆に変換。任意のタイムゾーンと現在時刻に対応。

現在のUNIXタイムスタンプ:
タイムスタンプ → 日付
日付 → タイムスタンプ

1行に1つのタイムスタンプまたは日付を、最大500行まで入力できます。

UNIXタイムスタンプ変換ツール - エポックと日付の相互変換

ログもデータベースもAPIも時刻を数値で保存しますが、人間は日付として読みます。この無料のUNIXタイムスタンプ変換ツールは、その隔たりを双方向で埋めます。エポック値を貼り付ければ読める日付になり、日付と時刻を指定すればコードが求める数値が得られます。現在のタイムスタンプは常に上部に表示され、すぐコピーできます。

計算はすべてブラウザー内で行われるため、本番ログや社内システムの値をどこにも送信せずに変換できます。

図:Unix時間を数直線で表したもの。0(1970年1月1日)から10億、17億を経て、2038年1月19日の符号付き32ビット上限 2147483647 まで。1970年1月1日 00:00:00 UTC からの経過秒数01970-01-0100:00:00 UTCUnixエポック10000000002001-09-0901:46:40 UTC10億秒17000000002023-11-1422:13:20 UTC21474836472038-01-1903:14:07 UTC32ビットの上限
Unixタイムスタンプはエポックからの秒数を数えただけの値で、常にUTCです。タイムゾーンが関係するのはローカル日時に戻すときだけです。符号付き32ビット整数で保存しているシステムは2038年1月19日にあふれます。

UNIXタイムスタンプとは

UNIXタイムスタンプは、エポック時間やPOSIX時間とも呼ばれ、1970年1月1日00:00:00 UTCからの経過秒数を表します。タイムゾーンも暦も書式も持たない単一の整数なので、曖昧さがなく、並べ替えも比較も差分計算も簡単です。この単純さゆえに、ほぼすべてのログファイル、データベースの列、APIレスポンスが内部でこの形式を使っており、開発者は週に何度も読める形へ戻す必要に迫られます。

秒かミリ秒か、桁数を数えましょう

これが最も多い混乱の原因です。秒単位のタイムスタンプは現在10桁で、同じ瞬間をミリ秒で表すと13桁になります。UNIX、PHP、Python、ほとんどのデータベースは秒で扱い、JavaScriptのDate.now()やJava、多くのログ基盤はミリ秒で扱います。変換結果が1970年になったら、秒を期待するツールにミリ秒を渡しています。逆に数万年先の日付になったなら、その反対のことをしています。この変換ツールは桁数を自動で数えます。11桁までは秒、14桁まではミリ秒、17桁まではマイクロ秒、それより長ければナノ秒として読み、結果の下の行にどの単位とみなしたかが表示されます。判定が外れたとき(たとえば1970年代初めのミリ秒の値)は、単位メニューで自動判定の代わりに単位を自分で選んでください。

タイムスタンプを変換する手順

  1. エポック値を読むには、タイムスタンプ欄に貼り付けて変換をクリックします。
  2. 逆方向では、日付と時刻を入力し、日付側の変換をクリックします。
  3. 現在時刻を使用を押すと、現在時刻が入力欄に入ります。
  4. テストやトークン、クエリ用の値が必要なときは、上部に表示されているタイムスタンプをコピーします。
  5. セレクターでタイムゾーンを選ぶと、その地域の時刻で日付を表示したり、その地域の現地時刻として日付を入力したりできます。
  6. 多くの値をまとめて変換するには、一括タブを開き、タイムスタンプや日付を1行に1つずつ最大500件貼り付けてすべて変換をクリックします。自動判定では単位が行ごとに判定され、CSVでコピーで表をスプレッドシートに渡せます。

見覚えのあるタイムスタンプ

値時点意味
01970年1月1日 00:00:00 UTCエポックそのもの。1970年と表示されたら空値やNULLの可能性が高い
10000000002001年9月9日最初の10桁のタイムスタンプ
17000000002023年11月14日覚えやすい現代の基準点
21474836472038年1月19日符号付き32ビット整数が保持できる最大値
負の値1970年より前有効ですが、一部のライブラリやデータベースでは扱えません

エポック時間が登場する場所

  • JWTのexp・iat・nbfクレーム。中身はJWTデコーダーで確認できます。
  • 各行がエポック値で始まるサーバーログやアプリケーションログ。
  • 日付型ではなく整数で保存されたcreated_atのような列。
  • キャッシュの有効期限、レート制限のウィンドウ、定期実行ジョブのトリガー。
  • リプレイ攻撃を防ぐためにタイムスタンプを含むWebhookのペイロードやAPIの署名。
  • OSが報告するファイルの更新日時。

タイムゾーンと、日付がずれて見える理由

タイムスタンプにタイムゾーンはありません。絶対的な一点を指す値です。表示される日付は、その一点を何らかのタイムゾーンで描画した結果なので、同じ数値でもテヘラン、ベルリン、東京では異なる現地時刻として読めます。値が数時間ずれて見えるとき、間違っているのはほぼ常に数値ではなく表示タイムゾーンです。保存と送信はUTCで行い、人に見せるときだけ現地時刻へ変換し、ログとスクリーンショットを突き合わせるときはオフセットを意識してください。

知っておきたい落とし穴

  • 2038年問題。符号付き32ビットの時刻フィールドを使うシステムは2038年1月19日にあふれます。長期を扱うなら64ビットの時刻型を使ってください。
  • サマータイム。現地の壁時計時刻は同じ時刻が2回来たり1時間飛んだりしますが、エポック値には起こりません。
  • うるう秒。UNIX時間はうるう秒を無視するため、物理的な経過秒数の正確な数え上げではありません。
  • 文字列と整数。文字列で保存したタイムスタンプは辞書順に並ぶため、桁数が変わった瞬間に順序が崩れます。
  • 丸め。ミリ秒を切り捨てて秒にすると、イベントが1秒前に移ることがあります。処理全体で同じ方法に統一してください。

Discordのタイムスタンプ

Unixタイムスタンプを <t:1700000000:F> の形式で書くと、Discordはそれを各自のタイムゾーンに合わせた動的な日時として表示します。スタイル文字ごとに表示形式が変わります:t 短い時刻、T 中程度の時刻(秒付き)、d 短い日付、D 長い日付、f 長い日付と短い時刻(既定)、F 曜日付きの完全な日付と短い時刻、s 短い日付と短い時刻、S 短い日付と中程度の時刻、R は「3時間後」のような相対表記。読む人がそれぞれ自分のローカル時刻で見られるのが要点です。

変換ツールのDiscordタブを使えば、このコードを自動で作れます。日付と時刻を選ぶか現在時刻を使用を押すと、表にすべてのスタイルが並び、コード列の完成したコード、コピーボタン、表示例のプレビューが表示されます。ただしこのタブは時刻を端末のタイムゾーンで読み、タイムゾーンメニューは使わないため、正しいのはイベントが自分の端末の時刻どおりの場合だけです。別の地域で予定されたイベントなら、タイムゾーンメニューでその地域を選び、日付 → タイムスタンプに日付と時刻を入力して変換を押し、秒の値を自分で<t:...:F>に入れます。一括タブは選択したタイムゾーン列をメニューのタイムゾーンで表示しますが、オフセットなしで入力した日付はやはり端末のタイムゾーンで読みます。予定表を作るときは、2026-10-01T18:00-04:00のように各行にオフセットを書いてください。

コード・SQL・Excelでタイムスタンプを変換する

変換ツールのコードタブは、タイムスタンプ欄の値(空欄なら現在時刻)について、この変換をJavaScript、Python、PHP、SQL、Go、Java、C#、Bashで書き出し、コピー用のボタンも付いています。下の表は手元に置いておくための簡易版です。

場所現在のタイムスタンプタイムスタンプ→日時
JavaScriptMath.floor(Date.now() / 1000)new Date(ts * 1000)
Pythonint(time.time())datetime.fromtimestamp(ts, tz=timezone.utc)
PHPtime()date('Y-m-d H:i:s', $ts)
MySQLUNIX_TIMESTAMP()FROM_UNIXTIME(ts)
PostgreSQLEXTRACT(EPOCH FROM now())to_timestamp(ts)
Linuxシェルdate +%sdate -d @1700000000
Excel / Google スプレッドシート-=A1/86400 + DATE(1970,1,1) と入力し、セルの表示形式を日付にする(UTC。ミリ秒なら 86400000 で割る。JSTにするなら + TIME(9,0,0) を足す)

関連ツール

時刻の値は単独で現れることが少ないものです。トークンの有効期限はJWTデコーダーで確認し、ログのペイロードはJSON整形ツールで読みやすくし、テキスト中の日付パターンは正規表現テスターで探し、リクエストIDはUUID生成ツールで作成できます。定期実行ジョブが次にいつ動くかを確かめるには、cron式チェッカーを使ってください。

関連ガイド