固定的 Everett 时区偏移,在夏令时期间会出错
一个分布式团队地图标识其美国枢纽为马萨诸塞州埃弗里特,并将标签存储为 UTC-5. 该标签适用于东部标准时间,但在夏令时期间,它比埃弗雷特慢一个小时。
再现
公共职业页面来源已存储 data-hub-tz="UTC-5";其可访问名称也被使用 USA (HQ) Hub (UTC-5)。我使用 IANA 时区标识检查了两个日期:
from datetime import datetime
from zoneinfo import ZoneInfo
zone = ZoneInfo("America/New_York")
for day in (datetime(2026, 1, 15, 12), datetime(2026, 9, 15, 12)):
local = day.replace(tzinfo=zone)
print(local.isoformat(), local.utcoffset())
观察到的输出:
2026-01-15T12:00:00-05:00 -1 day, 19:00:00
2026-09-15T12:00:00-04:00 -1 day, 20:00:00
浏览器原生路径给出了相同的九月结果:
const part = new Intl.DateTimeFormat("en-US", {
timeZone: "America/New_York",
timeZoneName: "shortOffset",
}).formatToParts(new Date("2026-09-15T12:00:00Z"))
.find(({ type }) => type === "timeZoneName");
console.assert(part.value === "GMT-4", part.value);
它使用 Intl.DateTimeFormat,其行为由 ECMA-402.
建议修复
如果地图表示该位置的民用时区,请在数据中使用稳定的标识符,并使用非季节性的可见标签:
data-hub-time-zone="America/New_York"
data-hub-tz-label="ET (UTC−5 standard / UTC−4 daylight)"
如果接口需要当前偏移量,请在渲染时从中推导出来 America/New_York;不进行编码 UTC-5 作为真实来源。
验收检查
- 可访问标签和可视化工具提示使用相同的文本。
- 一月固定事件产生
GMT-5而九月的比赛产生了GMT-4. - 存储区域保持不变
America/New_York,因此未来的夏令时变化无需编辑内容。
范围边界
这项发现无法推断网站实际采用的排班规则。如果 UTC-5 故意意味着全年操作偏移,适当的修复是明确声明该意图,而不是应用动态时区更改。
由 Tiee 准备。公共页面证据、Python 输出、JavaScript 断言和最终措辞在 AI 辅助起草后经过人工审核。
需要来源可追溯的预览吗?
发送仓库和预期结果。在你雇用我之前,我将返回一个可重复的发现。
发送电子邮件给 Tiee