跳转至

日期与时间

OpenClaw 使用配置的 用户时区 来生成消息信封、系统事件和系统提示。当 agents.defaults.userTimezone 未设置时,这些位置使用主机时区。提供方时间戳会被保留,因此工具保持其原生语义。当代理需要精确的当前时间且 session_status 可用时,它会运行该工具。

消息信封(默认本地时间)

入站消息会被包装在一个包含星期和秒级精度时间戳的信封中:

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

信封时间戳使用 agents.defaults.userTimezone(若已配置),否则使用主机时区。内置绝对时间戳和经过时间后缀。

示例

本地(默认):

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

用户时区:

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

经过时间:

[WhatsApp +1555 +30s Sun 2026-01-18 00:20:12 CST] follow-up

系统提示:时间上下文

系统提示包含一个动态的 时间上下文(Temporal Context) 部分,其中包含本地日历日期和时区,但没有实时时钟:

Current date: 2026-01-05
Time zone: America/Chicago

时区为 agents.defaults.userTimezone(若已配置),否则使用主机时区。该部分位于提示缓存边界之下,因此日期翻转和时区更改不会使稳定前缀失效。当 session_status 可用时,它仍然是获取精确当前时间的来源。

系统事件行(默认本地时间)

插入到代理上下文中的排队系统事件使用 agents.defaults.userTimezone(若已配置),否则使用主机时区。

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

配置用户时区

{
  agents: {
    defaults: {
      userTimezone: "America/Chicago",
    },
  },
}
  • userTimezone 设置消息信封、系统事件和提示上下文的用户本地时区。
  • 使用 IANA 时区,例如 America/Chicago、Europe/Vienna 或 Asia/Tokyo。

时间格式检测

渲染的时钟值遵循操作系统和区域设置偏好。OpenClaw 在 macOS 和 Windows 上检测 12 小时制或 24 小时制显示,然后回退到区域设置格式。检测到的值按进程缓存。

工具负载与连接器(原始提供方时间 + 规范化字段)

渠道工具返回 提供方原生时间戳,并添加规范化字段以保持一致性:

  • timestampMs:纪元毫秒(UTC)
  • timestampUtc:ISO 8601 UTC 字符串

原始提供方字段会被保留,因此不会丢失任何信息。

  • Discord:UTC ISO 时间戳
  • Slack:来自 API 的类似 Epoch 的字符串
  • Telegram/WhatsApp:提供方特定的数字/ISO 时间戳

如果需要本地时间,请使用已知时区在下游进行转换。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw