时区处理
OpenClaw 对时间戳进行标准化,让模型看到一个统一的参考时间。
消息信封(默认使用本地时间)
入站消息会被包裹在信封中,格式如下:
[Provider ... 2026-01-05 16:26 PST] message text
信封中的时间戳默认使用主机本地时间,精确到分钟。
可以通过以下配置覆盖:
{
agents: {
defaults: {
envelopeTimezone: "local", // "utc" | "local" | "user" | IANA 时区
envelopeTimestamp: "on", // "on" | "off"
envelopeElapsed: "on", // "on" | "off"
},
},
}
envelopeTimezone: "utc"使用 UTC。envelopeTimezone: "user"使用agents.defaults.userTimezone(找不到时回退到主机时区)。- 可以指定具体的 IANA 时区(如
"Europe/Vienna")来使用固定偏移。 envelopeTimestamp: "off"移除信封头中的绝对时间戳。envelopeElapsed: "off"移除经过时间后缀(+2m格式)。
示例
本地时间(默认):
[Signal Alice +1555 2026-01-18 00:19 PST] hello
固定时区:
[Signal Alice +1555 2026-01-18 06:19 GMT+1] hello
经过时间:
[Signal Alice +1555 +2m 2026-01-18T05:19Z] follow-up
工具载荷(原始服务商数据 + 标准化字段)
工具调用(channels.discord.readMessages、channels.slack.readMessages 等)返回服务商原始时间戳。我们同时附加标准化字段以保持一致性:
timestampMs(UTC 毫秒级 epoch)timestampUtc(ISO 8601 UTC 字符串)
服务商原始字段保持不变。
系统 prompt 的用户时区
设置 agents.defaults.userTimezone 告诉模型用户的本地时区。如果未设置,OpenClaw 会在运行时读取主机时区(不写入配置)。
{
agents: { defaults: { userTimezone: "America/Chicago" } },
}
系统 prompt 中包含:
Current Date & Time段落,含本地时间和时区Time format: 12-hour或24-hour
可以通过 agents.defaults.timeFormat(auto | 12 | 24)控制 prompt 中的时间格式。
完整行为和示例参见 Date & Time。