---
read_when:
    - モデルまたはユーザーにタイムスタンプを表示する方法を変更しようとしています
    - メッセージまたはシステムプロンプト出力の時刻形式をデバッグしている場合
summary: エンベロープ、プロンプト、ツール、コネクタ全体での日付と時刻の処理
title: 日付と時刻
x-i18n:
    generated_at: "2026-07-11T22:09:13Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: e6f923022c021c1cf18ba306cd7b9a4873f5df947bb9a8fae9c737a89f64cbf2
    source_path: date-time.md
    workflow: 16
---

OpenClaw は、トランスポートのタイムスタンプに**ホストのローカル時刻**を使用し、システムプロンプトには**タイムゾーンのみ**を含めます。
ツールがプロバイダー固有のセマンティクスを維持できるよう、プロバイダーのタイムスタンプは保持されます。エージェントが現在時刻を必要とする場合は、
`session_status` ツールを実行します。

## メッセージエンベロープ（デフォルトはローカル）

受信メッセージは、曜日と秒精度のタイムスタンプを付けてラップされます。

```
[WhatsApp +1555 Mon 2026-01-05 16:26:34 PST] message text
```

エンベロープのタイムスタンプは、プロバイダーのタイムゾーンに関係なく、**デフォルトでホストのローカル時刻**になります。
`agents.defaults` で上書きできます。

```json5
{
  agents: {
    defaults: {
      envelopeTimezone: "local", // "utc" | "local" | "user" | IANA timezone
      envelopeTimestamp: "on", // "on" | "off"
      envelopeElapsed: "on", // "on" | "off"
    },
  },
}
```

| キー                | 値                                                   | 動作                                                                                                                                                                                    |
| ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `envelopeTimezone`  | `local`（デフォルト）、`utc`、`user`、明示的な IANA 名 | `user` は `agents.defaults.userTimezone` を使用します（未設定の場合はホストのタイムゾーン）。明示的な IANA 名（例：`"America/Chicago"`）を指定すると固定ゾーンに設定されます。認識されない名前は UTC にフォールバックします。 |
| `envelopeTimestamp` | `on`（デフォルト）、`off`                            | `off` にすると、エンベロープヘッダー、エージェントへの直接プロンプトのプレフィックス、埋め込まれたモデル入力のプレフィックスから絶対タイムスタンプが削除されます。                         |
| `envelopeElapsed`   | `on`（デフォルト）、`off`                            | `off` にすると、セッション内の前のメッセージからの経過時間を示すサフィックス（`+30s` / `+2m` 形式）が削除されます。                                                                      |

### 例

**ローカル（デフォルト）：**

```
[WhatsApp +1555 Sun 2026-01-18 00:19:42 PST] hello
```

**ユーザーのタイムゾーン：**

```
[WhatsApp +1555 Sun 2026-01-18 00:19:42 CST] hello
```

**`envelopeTimezone: "utc"` での経過時間：**

```
[WhatsApp +1555 +30s Sun 2026-01-18T05:19:00Z] follow-up
```

## システムプロンプト：現在の日付と時刻

プロンプトキャッシュを安定させるため、システムプロンプトには**タイムゾーンのみ**
（時刻や時刻形式は含まない）を示す**現在の日付と時刻**セクションが含まれます。

```
Time zone: America/Chicago
```

設定されている場合、ゾーンには `agents.defaults.userTimezone` が使用され、それ以外の場合はホストのタイムゾーンが使用されます。
また、現在の日付、時刻、曜日が必要な場合は常に `session_status` ツールを実行するよう、
プロンプトでエージェントに指示します。

## システムイベント行（デフォルトはローカル）

エージェントのコンテキストに挿入されるキュー内のシステムイベントには、メッセージエンベロープと同じ
`envelopeTimezone` の選択（デフォルト：ホストのローカル時刻）を使用したタイムスタンプがプレフィックスとして付加されます。

```
System: [2026-01-12 12:19:17 PST] Model switched.
```

### ユーザーのタイムゾーンと形式を設定する

```json5
{
  agents: {
    defaults: {
      userTimezone: "America/Chicago",
      timeFormat: "auto", // auto | 12 | 24
    },
  },
}
```

- `userTimezone` は、プロンプトのコンテキスト（および `envelopeTimezone: "user"`）に使用する**ユーザーのローカルタイムゾーン**を設定します。
- `timeFormat` は、プロンプトに表示される時刻の**12時間制／24時間制表示**を制御します。`auto` は OS の設定に従います。

## 時刻形式の検出（自動）

`timeFormat: "auto"` の場合、OpenClaw は OS の設定（macOS および Windows）を確認し、
見つからない場合はロケールの書式設定にフォールバックします。検出された値は、システムコールの繰り返しを避けるため、
**プロセスごとにキャッシュ**されます。

## ツールペイロードとコネクター（プロバイダーの生の時刻と正規化フィールド）

チャンネルツールは、**プロバイダー固有のタイムスタンプ**を返し、一貫性を保つために正規化されたフィールドを追加します。

- `timestampMs`：エポックからのミリ秒（UTC）
- `timestampUtc`：ISO 8601 UTC 文字列

情報が失われないよう、プロバイダーの生のフィールドは保持されます。

- Discord：UTC の ISO タイムスタンプ
- Slack：API から返されるエポック形式の文字列
- Telegram/WhatsApp：プロバイダー固有の数値／ISO タイムスタンプ

ローカル時刻が必要な場合は、既知のタイムゾーンを使用して後続処理で変換してください。

## 関連ドキュメント

- [システムプロンプト](/ja-JP/concepts/system-prompt)
- [タイムゾーン](/ja-JP/concepts/timezone)
- [メッセージ](/ja-JP/concepts/messages)
