Windows 下未授权 Get-Date 时,LLM 获取到的时间为 UTC 而非本地时间(北京时间),导致存档时间戳错乱
问题现象
在 Windows 系统上使用 trae IDE 时,当 PowerShell 的 Get-Date 命令未被加入工具白名单时,LLM 会转而通过 trae IDE 内部的某种方式获取当前时间,用于填写时间戳。但该方式获取到的时间是格林威治标准时间(UTC),而非系统本地时间(北京时间,UTC+8),两者相差 8 小时。这导致所有由 LLM 自动填写的时间戳(如文件存档时间、更新记录、日志等)都比实际北京时间早 8 小时,造成时间信息混乱。
复现步骤
- 在 Windows 上使用 trae IDE,确保 Get-Date 命令未被加入白名单(即 LLM 无法直接调用 Shell 执行 Get-Date )。
- 让 LLM 执行一个需要填写当前时间戳的任务(例如"读取当前时间并写入文件的更新记录")。
- 查看 LLM 填写的时间戳,并与系统实际北京时间比对。
期望行为
LLM 获取到的时间应当是系统本地时间(北京时间,UTC+8),与系统时区设置保持一致;或在时间信息中明确标注时区,避免被误当作本地时间使用。
实际行为
LLM 填写的时间为 UTC 时间,比北京时间早 8 小时。例如北京时间 20:00 时,LLM 填写的时间为 12:00。
影响
所有依赖 LLM 自动填写时间戳的存档记录、日志、更新记录都会出现 8 小时偏差,导致时间线混乱,严重影响基于时间的排序、追溯和审计。用户不得不手动核对并修正大量错误时间戳,增加无谓的心智负担。
环境信息
- 操作系统:Windows 11
- 问题平台:trae IDE
建议
希望 trae IDE 在向 LLM 注入当前时间信息时,使用系统本地时间(尊重系统时区设置),或在时间信息中明确标注时区(如"2026-08-04 20:00:00 UTC+8"),避免 LLM 误用 UTC 时间作为本地时间填写到存档中。