2.6 time:把时区算对
它是什么
官方描述:time and timezone conversion——时间查询与时区转换。Python 实现,包名 mcp-server-time,版本 2026.10.19。
社区有句调侃:“agents constantly get wrong”(agent 老是算错)。这不是夸张——时间计算涉及时区、夏令时、历史变更,是模型的典型弱项。
为什么模型算不准
| 难点 | 例子 |
|---|---|
| 夏令时 | 美国 2026 年 3 月 8 日开始,11 月 1 日结束 |
| 历史偏移 | 中国 1986-1991 实行过夏令时 |
| 时区政治变更 | Samoa 2011 年直接跳过了一整天 |
| IANA 数据库更新 | 时区规则本身会变 |
让模型凭记忆算“下周一早上九点北京时间是纽约时间几点”,出错率很高。time 服务器让它真的去查 IANA 数据库算,而不是靠训练记忆拍脑袋。
安装与配置
- insert:
- id: time
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: time
transport: stdio
command: uvx
args: ["mcp-server-time"]
cwd: !!js process.cwd()
或 pip install mcp-server-time。
serverName 用 time,工具前缀为 mcp__time__...。
典型用法
跨时区约会:
用 time 服务器:
北京时间 2026-11-05 09:00 对应纽约、伦敦、东京、悉尼各是什么时间?
标注哪些地区当天实行夏令时。
定时任务排期:
用 time 服务器计算:从此刻起 72 小时后,
北京时间、UTC、美国太平洋时间各是几月几号几点。
历史日期核对:
用 time 服务器确认 1991 年 4 月 14 日中国是否实行夏令时,
当天的 UTC 偏移是多少。
日志时间戳对齐:
用 time 服务器把一批 UTC 时间戳转成北京时间,
按小时分桶,统计访问高峰。
会议邀请时间窗:
用 time 服务器找一个北京工作时间的早晨,
同时落在旧金山当天工作时段内的 30 分钟窗口。
谁该装
| 情况 | 建议 |
|---|---|
| 团队跨时区协作 | 必装 |
| 做定时任务 / 调度 | 必装 |
| 处理历史数据时间戳 | 建议 |
| 纯本地单时区使用 | 不必 |
如果你只在中国时区、只处理当下时刻,模型勉强够用;但凡涉及“另一个时区的几点”“夏令时期间”“历史日期的偏移”,交给 time 服务器几乎不会错。
排错
| 现象 | 原因 |
|---|---|
| 结果和手算对不上 | 没考虑夏令时,time 算的是真实偏移 |
| 历史日期报错 | 该日期在 IANA 数据库边界,确认输入格式 |
| 和某站点显示不一致 | 站点可能用本地规则,以 IANA 为准 |
它和 dsh 定时能力的关系
dsh 自带 定时提醒与自动化会话 能力,负责“到点触发”。time 服务器负责“把触发时间算对”——两者配合,跨时区排期才不会差几个小时。
小结
- time 管时间查询与时区转换,Python 实现。
- 时间计算是模型典型弱项(夏令时、历史偏移、时区变更)。
- 跨时区协作与做调度的人必装。
- 它查 IANA 数据库,比模型凭记忆算可靠。
