在技术文档和日常交流中,人们习惯用 CST、EST、PST 这类三个字母的缩写表示时区。但这些缩写存在严重的歧义,是全球时间处理中最常见的坑之一。
CST 至少可以指三件完全不同的事:
China Standard Time,北京时间,UTC+8;
Central Standard Time,北美中部标准时间,UTC-6;
Cuba Standard Time,古巴标准时间,UTC-5。
也就是说,看到 CST,你无法判断它到底是 UTC+8 还是 UTC-6,两者相差 14 小时。在中文语境里写 CST 指中国标准时间,放到国际项目中就会被北美同事理解成完全不同的东西。
EST 可指北美东部标准时间(UTC-5),也可指澳大利亚东部标准时间(UTC+10),相差 15 小时。
IST 可指印度标准时间(UTC+5:30)、爱尔兰标准时间(UTC+1)或以色列标准时间(UTC+2)。
BST 可指英国夏令时(UTC+1),也可指孟加拉国标准时间(UTC+6)。
AEST 与 EST 在澳大利亚语境下常被混写,但前者是明确的 UTC+10。
把时区写成 GMT+8 或 UTC+8,虽然明确了偏移量,但丢失了地理区域信息,因此无法处理夏令时。伦敦冬季是 UTC+0、夏季是 UTC+1,如果系统里固定存 GMT+0,夏季就会算错一小时。同时,某些地区历史上多次调整时区,用固定偏移量无法还原历史时间的正确值。
优先使用 IANA 时区标识符,格式为"区域/城市":
北京时间写作 Asia/Shanghai,而不是 CST 或 GMT+8;
纽约写作 America/New_York,而不是 EST;
伦敦写作 Europe/London,而不是 GMT;
东京写作 Asia/Tokyo,巴黎写作 Europe/Paris。
这样写既无歧义,又能自动适配夏令时与历史规则变更。若必须写偏移量,请遵循 ISO 8601 格式,例如 2026-09-27T12:00:00+08:00,把偏移作为时间字符串的一部分,而不是单独存一个时区字段。
数据库与日志统一用 UTC 或 Unix 时间戳存储,展示层再按用户所在 IANA 时区格式化,可以彻底绕开缩写歧义。需要确认某地当前实际时间与 UTC 偏移时,直接查看本站对应城市的时间页面最为可靠,页面会明确标注时区标识符、当前偏移与是否处于夏令时。
公历农历有什么区别:二十四节气与闰年规则详解Unix 时间戳是什么:秒级与毫秒级时间戳换算原理时区与时差是怎么算的:UTC、GMT 与北京时间对照原理手机电脑时间不准怎么办:时间同步全攻略IANA时区数据库:全球时间换算靠它国际日期变更线:一天从哪里开始世界时UT0、UT1、UT2与UTC是什么关系GMT与UTC到底有什么区别Unix时间戳是什么:10位与13位的区别时差怎么算:两地时间换算方法与公式中国国家授时中心:北京时间是怎么产生的夏令时是什么:为什么要调时钟全球时区是怎么划分的NTP网络时间协议:电脑的时间从哪里来什么是闰秒:为什么全世界要多加一秒UTC协调世界时是什么