Claude Media
Claude Codeでタイムゾーンと時刻表示形式を設定する方法

Claude Codeでタイムゾーンと時刻表示形式を設定する方法

settings.jsonのtimeFormatとtimeZoneで、ターン終了時刻と文字起こしビューアーの時刻表示を12/24時間表記や別タイムゾーンに変える設定方法です。

timeFormat/timeZoneとは

timeFormatとtimeZoneは、Claude Codeのインターフェースが表示する時刻の書式とタイムゾーンを、settings.jsonから個別に設定するためのキーです。ターン終了時に出る「Cooked for 1m 6s · done 6:05 PM」のような時計と、文字起こしビューアー(Ctrl+Oで開くトランスクリプト表示)のタイムスタンプの両方に効きます。どちらもClaude Code v2.1.257以降が必要です。

文字起こしビューアーは、既定で1行に折りたたまれているMCP呼び出し(Called slack 3 timesのような表示)や、ほかのセッションからのメッセージ通知を展開して詳細表示に切り替える機能で、各アシスタントメッセージにタイムスタンプと使用モデルを添えて表示します。timeFormat/timeZoneはこのタイムスタンプ部分の書式に反映されます。

{
  "timeFormat": "24-hour",
  "timeZone": "Asia/Tokyo"
}

対応する範囲は「Any file」、つまり~/.claude/settings.json(ユーザー)/.claude/settings.json(プロジェクト)/.claude/settings.local.json(ローカル)/組織が配布する管理設定のどこに置いても有効です。組織管理下で運用している場合は、自分のファイルに書いても管理設定側の値が優先されて変わらないことがあります。日本語ロケールのまま12時間表記になっている環境や、海外拠点のメンバーとセッションを共有している環境では、この2つのキーだけで表示時刻を好みの形に揃えられます。手元のPCとは別のタイムゾーンで動くクラウドセッションやリモートコンテナ環境を使う人ほど、timeZoneによる表示の固定が効きます。

timeFormatで12時間・24時間表記を切り替える

timeFormatはstring型で、4つのプリセットかstrftimeパターンのどちらかを受け付けます。値を省略した場合の既定は"auto"で、ロケールに応じた組み込みの書式のままです。

値表示例向いている場面
"auto"(既定)表示例ロケール依存向いている場面特に変更が要らない場合
"12-hour"表示例6:05 PM向いている場面12時間表記に固定したい場合
"24-hour"表示例18:05向いている場面24時間表記に固定したい場合
"24-hour-utc"表示例18:05Z向いている場面チーム全体をUTC基準で統一したい場合

/configを開きTime formatの行を選ぶと、この4プリセットから対話的に切り替えられます。設定ファイルに直接書く場合は次のようになります。

{
  "timeFormat": "24-hour"
}

"24-hour-utc"を選んだ場合だけはtimeZoneの値を無視し、常にUTCで表示します。UTCとローカルタイムゾーンを設定で使い分けたい場合は、"24-hour-utc"ではなく"24-hour"または"12-hour"とtimeZoneを組み合わせます。

strftimeパターンで書式を自由に指定する

4つのプリセットに当てはまる書式がない場合は、%を含む任意のstrftimeパターンをtimeFormatにそのまま指定できます。%を含む値は自動的にパターンとして扱われ、プリセットにもパターンにも当てはまらない値は"auto"と同じ扱いになります。

{
  "timeFormat": "%Y-%m-%d %H:%M"
}

このパターンを設定すると、ターン終了時の時計は2026-09-28 18:05のように日付付きで表示されます。文字起こしビューアーではタイムスタンプ全体がこのパターンで決まるため、日付を表示したい場合はパターン側に日付の指定子まで含めておく必要があります。/configのTime formatメニューには4プリセットしか出ないため、strftimeパターンを使う場合はsettings.jsonに直接キーを書きます。

よく使う指定子は次のとおりです。

指定子意味
%H意味24時間制の時(00〜23)
%I意味12時間制の時(01〜12)
%M意味分(00〜59)
%p意味AM/PM
%Y意味西暦4桁
%m意味月(01〜12)
%d意味日(01〜31)
%a意味曜日の略称

たとえば"%a %I:%M %p"と指定すると、曜日の略称・12時間表記・午前午後の区切りをまとめて含んだ書式になります。組み合わせ方はstrftimeの標準的な記法に従うため、社内ログや他のツールで使っているタイムスタンプ形式にも合わせやすくなっています。

timeZoneで日本時間などに表示を変える

timeZoneは、表示専用のタイムゾーンをIANAタイムゾーン名で指定するキーです。実行環境のシステム時刻は変えず、画面上の表示だけをずらします。

{
  "timeZone": "Asia/Tokyo"
}

既定は未設定で、その場合はシステムのタイムゾーンがそのまま使われます。指定した名前をClaude Codeが認識できない場合も、エラーにはならずシステムのタイムゾーンにフォールバックします。timeFormatが"24-hour-utc"のときは前述のとおりこのキー自体が無視されるため、timeZoneを使う場合はほかの3プリセットかstrftimeパターンと組み合わせます。timeZoneには/configの対応する行がなく、設定ファイルに直接書く以外の変更手段はありません。

指定する値はIANAタイムゾーンデータベースの名前で、"Asia/Tokyo"のように「地域/都市」の形を取ります。公式ドキュメントが例に挙げる名前は"UTC"と"Europe/Dublin"で、地域名を含まない"UTC"もこの形式の一つとして扱われます。海外拠点がヨーロッパにある場合は"Europe/Dublin"のように、拠点ごとの地域名をそのまま指定します。正しい名前が分からない場合は、公式のIANAタイムゾーン一覧から自分の地域に対応する名前を確認します。

海外拠点のメンバーと同じセッションを見ながら会話する場合や、多くがUTCで動くCIサーバーとローカル開発機のタイムゾーンが食い違う場合は、timeZoneを"Asia/Tokyo"のように固定しておくと、どちらの環境から見ても同じ時刻表示になります。あくまで表示専用(display)のタイムゾーンで、システムの時刻設定そのものを変えるものではありません。

showTurnDurationとの違い — 表示自体を消したいとき

timeFormatとtimeZoneはどちらも時刻の書式を変えるキーで、ターン終了時の時計そのものを消す設定ではありません。表示を丸ごと止めたい場合は、別のキーであるshowTurnDurationを使います。

キー役割
timeFormat役割時刻の書式(12/24時間・UTC・strftime)を変える
timeZone役割時刻のタイムゾーンを変える
showTurnDuration役割ターン終了メッセージ自体の表示・非表示を切り替える(既定はtrue)

showTurnDurationをfalseにすると「Cooked for 1m 6s · done 6:05 PM」のようなメッセージ自体が出なくなり、そのメッセージに関してはtimeFormat/timeZoneの設定は意味を持たなくなります。文字起こしビューアーのタイムスタンプにはshowTurnDurationは影響せず、timeFormat/timeZoneの設定がそのまま反映されます。showTurnDurationは~/.claude.jsonにある古いバージョン由来の値も後方互換で読み込み、ほかの設定ファイルがこのキーを指定していない場合に限って適用します。

設定例 — チームでタイムスタンプをUTCに統一する

複数のタイムゾーンにまたがるチームで「ログのタイムスタンプは全員UTCで揃える」と決めた場合は、共有プロジェクト設定にプリセットを1つ書くだけで済みます。UTCに統一しておけば、CIサーバーが出力するログのタイムスタンプと突き合わせるときに時差の換算をはさまずに済みます。

{
  "timeFormat": "24-hour-utc"
}

.claude/settings.jsonにこのキーを含めてコミットすれば、リポジトリをcloneした全員のターン終了時計と文字起こしビューアーが18:05ZのようなUTC表記に揃います。前述のとおりtimeZoneは無視される仕様なので、別途書く必要はありません。個々のメンバーが自分のタイムゾーンでも見たい場合は、各自の.claude/settings.local.jsonでtimeFormatを"24-hour"に上書きし、timeZoneに自分の地域名を追加します。

どのsettings.jsonに書くか

timeFormat/timeZoneは4つの設定ファイルすべてに置けますが、同じキーが複数のファイルにあるときの優先順位は固定されています。高い順に、組織が配布する管理設定 → コマンドラインの--settings → プロジェクトローカル設定(.claude/settings.local.json)→ 共有プロジェクト設定(.claude/settings.json)→ ユーザー設定(~/.claude/settings.json)です。

個人の好みで表示だけを変えたいなら~/.claude/settings.jsonで十分です。チーム全体で統一する場合の書き方は前述の設定例のとおりです。設定全体をどのファイルに置くかの判断基準はsettings.json完全ガイドにまとめています。

設定ファイルを書き換えずにその場だけ試したい場合は、起動時の--settingsフラグにJSONを渡します。

claude --settings '{"timeFormat": "24-hour"}'

--settingsで渡した値は、そのセッション限りでユーザー・プロジェクト・ローカルの各設定より上位に適用され、設定ファイルの中身は書き換わりません。timeFormat/timeZoneには専用のコマンドラインフラグや環境変数は用意されていないため、一時的に試す手段はこの--settingsフラグだけです。

設定が反映されないときの確認

Claude Codeは設定ファイルの変更を検知し、実行中のセッションに自動で反映します。timeFormat/timeZoneは再起動が要らない類のキーで、保存しただけで次のターンから新しい書式・タイムゾーンが使われます。反映されない場合は、まず/statusを開きSetting sourcesの行でどの設定ファイルが読み込まれているかを確認します。この行が示すのは読み込まれたファイルの一覧までで、どのファイルがtimeFormat/timeZoneの値を実際に供給しているかまでは表示されません。プロジェクト共有設定や管理設定が同じキーをより高い優先順位で上書きしていないかも合わせて見ます。

strftimeパターンを使う場合は、値に%を含めているかどうかも見直しどころです。%を含まない未知の文字列を指定すると、Claude Codeはそれをプリセットの一種とはみなさず"auto"と同じ扱いにするため、書式が変わっていないように見えることがあります。

自動リロードには例外があり、model/effortLevel/modelSettingsのような一部のキーは変更を検知しても再起動しないと反映されません。timeFormat/timeZoneはこの例外リストに含まれていないため、保存した瞬間から新しい書式・タイムゾーンが有効になります。それでも変わらない場合は、優先順位の高い設定ファイル(管理設定やコマンドラインの--settings)が同じキーを別の値で上書きしていないかを疑います。設定ファイル自体が壊れていて読み込みごと弾かれているケースもあるため、claude doctorで読み込みを拒否されたエントリが無いかも確認します。

よくある質問

timeFormatだけ設定してtimeZoneは設定しなくてよいか

問題ありません。timeFormatだけで書式(12時間・24時間・UTC・strftime)を変えられます。逆にtimeZoneだけを設定してtimeFormatを省略した場合は、書式はロケール依存の"auto"のまま、タイムゾーンだけが指定した地域に変わります。

まとめ

timeFormatとtimeZoneは、Claude Code v2.1.257で追加された、ターン終了時の時計と文字起こしビューアーの時刻表示だけを変える設定キーです。timeFormatは"auto"/"12-hour"/"24-hour"/"24-hour-utc"かstrftimeパターンから選び、timeZoneはIANAタイムゾーン名で表示上のゾーンだけをずらします。海外拠点との共同作業やCI環境との時刻のずれが気になる場合は、この2つのキーを~/.claude/settings.jsonか共有プロジェクト設定に書くだけで表示を揃えられます。追加の経緯はClaude Code v2.1.257のリリースノートにまとめています。

この記事を共有:XはてブLinkedIn