JWTのexp / iatクレームを読む
JSON Web Tokenはiat(発行時刻)とexp(有効期限)をUnix秒でエンコードします。数値を貼り付ければ、トークンがまだ有効か、いつ発行されたか、いつ失効するかを瞬時に確認できます。
Unixタイムスタンプ(秒またはミリ秒)を人間が読める日付に、また日付をエポックに即座に変換します。ISO 8601、RFC 2822、UTC、ローカル時刻、10以上のタイムゾーンを一画面で表示。
Unixタイムスタンプ(「Unix時間」「エポック時間」とも呼ばれます)は、1970年1月1日(木)00:00:00 UTCから経過した秒数で、うるう秒は無視します。データベース、ログファイル、API、Cookieなどで使われる普遍的な時刻形式です。10桁の数値は秒(2286年に11桁になります)、13桁の数値はミリ秒です。
ほとんどのUnix系ツール(curl、date、syslog、JWTのexp/iatクレーム)は秒を使います。JavaScriptのDate.nowはミリ秒を返します。Java、Kotlin、多くのWeb APIもミリ秒です。現在の数値が約10桁なら秒、13桁ならミリ秒です。iKitは桁数で自動判定しますが、ラジオボタンで強制指定もできます。
—
秒
—
ミリ秒
ブラウザはピッカーをローカルタイムゾーンとして解釈します。別ゾーンから変換するにはOSのタイムゾーンを変更してください。
Date.parseが理解できる形式なら何でもOK:「2024-01-15 10:30 UTC」「Jan 15, 2024」「2024-01-15T10:30:00+09:00」など。
ログ、API、データベースのタイムスタンプをデバッグする開発者のために設計。サインアップ不要、アップロード不要、データを第三者に渡しません。
ページ上部で現在のUnix時刻を秒・ミリ秒の両形式で毎秒更新します。どちらの形式もワンクリックでコピー可能です。
整数を貼り付けるだけ。10桁は秒、13桁はミリ秒、16桁はマイクロ秒として扱います。必要に応じて単位トグルで手動指定もできます。
ISO 8601、RFC 2822、UTC時刻、ローカル時刻、Y-M-D H:M:Sを一画面に表示。曜日や人間が読める相対表現(「2時間前」など)も提供します。
UTC、ニューヨーク、ロサンゼルス、ロンドン、パリ、東京、上海、台北、コルカタ、シドニーで同じ瞬間を確認できます。チーム横断のインシデント対応やグローバルAPIに便利です。
「日付 → タイムスタンプ」モードに切り替えて、「Jan 15 2024 10:30 UTC」のように入力したり日時ピッカーで選択して、Unixタイムスタンプを秒・ミリ秒で取得できます。
すべてブラウザのタブ内で読み込まれたJavaScriptで動作します。DevTools → Networkで検証可能:fetchもXHRもログ送信もありません。本番環境のタイムスタンプにも安心して使えます。
Unixタイムスタンプは単なる整数ですが、日付に変換するには意外と多くの細部があります。
Unixタイムスタンプはソースによって秒、ミリ秒、マイクロ秒、ナノ秒のいずれかになります。最初の仕事はどれかを知ることです。iKitは桁数で判定します:約10桁=秒、約13桁=ミリ秒、約16桁=マイクロ秒。単位ラジオボタンで自動判定を上書きできます。
JavaScriptのDateコンストラクタはミリ秒を受け取るため、秒×1000(またはマイクロ秒/1000)で正規化します。Date内部ではエポックからのミリ秒を64ビット浮動小数点で保持しており、現実的なタイムスタンプには十分な範囲があります。
Dateオブジェクトを得たら、いくつかの形式で整形します:ISO 8601 / UTCにはtoISOString、RFC 2822にはtoUTCString、ユーザーのローカルゾーンにはtoString、その他のタイムゾーン表示にはIntl.DateTimeFormatを使います。
逆方向では、ブラウザのDate.parseがISO 8601や多くの自然な形式を扱います。datetime-local入力はユーザーのローカルタイムゾーンとして解釈されます。getTimeはエポックからのミリ秒を返すので、秒にするには1000で割ります。
エポック変換ツールが活躍する実際のシーン。
JSON Web Tokenはiat(発行時刻)とexp(有効期限)をUnix秒でエンコードします。数値を貼り付ければ、トークンがまだ有効か、いつ発行されたか、いつ失効するかを瞬時に確認できます。
Postgresのextract(epoch from now)、MySQLのUNIX_TIMESTAMP、MongoDBの$toDateはいずれもUnixエポックを返します。行のタイムスタンプ値を貼り付ければ、各タイムゾーンでの実際の時刻を確認できます。
アプリログはUTC、syslogはローカル時刻、上流プロバイダのログはPST。各タイムスタンプをここでISO 8601に変換すれば、インシデント追跡時に秒単位で並べて突き合わせできます。
ピッカーで未来の日付を選んでUnixタイムスタンプをコピーし、Set-Cookieヘッダ、HTTPのExpiresフィールド、キャッシュTTL設定に貼り付けます。頭の中での計算もタイムゾーンのオフバイワンエラーもありません。
本番ログ、サポートチケット、監査証跡、テストフィクスチャのタイムスタンプは一見無害でも、ユーザー操作やインフラ事象と紐づいています。他社のサーバに貼り付けると、自分が制御できない記録が残ります。iKitの変換ツールはブラウザのタブ内で読み込み済みのJavaScriptとして動作します。
iKit ブログの詳しいチュートリアルとツール比較。
Unixタイムスタンプ(「Unix時間」「エポック時間」とも呼ばれます)は、1970年1月1日(木)00:00:00 UTCから経過した秒数で、うるう秒は無視します。データベース、ログファイル、API、Cookieなどで使われる普遍的な時刻形式です。10桁の数値は秒(2286年に11桁になります)、13桁の数値はミリ秒です。
ほとんどのUnix系ツール(curl、date、syslog、JWTのexp/iatクレーム)は秒を使います。JavaScriptのDate.nowはミリ秒を返します。Java、Kotlin、多くのWeb APIもミリ秒です。現在の数値が約10桁なら秒、13桁ならミリ秒です。iKitは桁数で自動判定しますが、ラジオボタンで強制指定もできます。
いいえ。このツール全体がブラウザのタブ内で動作するJavaScriptです。変換は単なるDate演算で、fetchもXHRもbeaconもありません。DevTools → Networkを開いて確認できます。入力中もリクエストは一切発生しません。本番ログ、ステージングDB、サポートチケットのタイムスタンプも安心して貼り付けられます。
Unixタイムスタンプは定義上タイムゾーンを持ちません。エポック(UTC)からの秒数だからです。違いが現れるのは表示時です。「日付 → タイムスタンプ」側のピッカーはブラウザのローカルタイムゾーンを使います。別ゾーンの日付を入力するには、「2024-01-15 10:30:00 +09:00」や「2024-01-15 10:30 UTC」のようにオフセットを明示して自由形式で入力してください。
32ビット符号付きUnixタイムスタンプは2038年1月19日にオーバーフローします。iKitはJavaScriptのNumber型(53ビット安全整数範囲)を使用しているため、西暦275000年をはるかに超える日付まで扱えます。Y2038問題は32ビットtime_tで動作するシステムに影響します。最新のOSカーネル、データベース、言語の多くはすでに64ビット時刻に移行済みですが、レガシーな組込みファームウェアでは依然として発生し得ます。