网站时区配置:同个timezone_id对应多时区缩写的含义与展示方法
同时区多缩写的来源说明与展示选型方案
同offset下匹配到多缩写的本质原因
上述America/New_York映射列表中出现的多个同offset缩写,本质是全量时区数据库覆盖历史特殊规则、行业私有标识导致的,各缩写的实际定义如下:
edt:Eastern Daylight Time(美国东部夏令时),是当前民用场景下通用的标准缩写,对应offset UTC-4,为该时区夏令时的法定正式标识est:Eastern Standard Time(美国东部标准时),是该时区冬令时的法定正式缩写,对应offset UTC-5ewt:Eastern War Time(东部战时时间),是二战、1973年石油危机期间美国强制全年执行夏令时的临时特殊时间标记,offset和常规夏令时一致为UTC-4,不属于常规民用时间体系ept:Eastern Prevailing Time(东部通用时间),是旧工业系统、企业内部IT系统用来笼统指代东部时区当前生效时间的内部私有标记,从未作为公共对外的时间缩写使用
目前通用的IANA时区数据库会记录所有历史上生效过的时间规则、以及各类曾出现过的时间标识,因此全量拉取单一时区的映射关系时,会把这些非当前通用的历史缩写、内部缩写一并匹配出来,并非这些缩写是当前正在生效的通用时间标识。
网站端的缩写选型规则
前端展示的时区缩写必须经过白名单过滤,不能直接使用数据库全量匹配结果:
- 优先筛选具备法定效力、当前民用场景通用的标准缩写,直接过滤所有历史临时缩写、行业内部私有缩写。以上述纽约时区为例,对外仅保留夏季对应
edt、冬季对应est两个有效展示项即可,剔除ewt、ept等冷门标识。 - 不能仅依靠offset值做缩写匹配判断。同offset下可能对应多来源的不同缩写,必须先对所有缩写做属性分类:区分公共法定缩写、历史特殊时期缩写、内部私有缩写三类,仅保留第一类进入前端候选列表。
- 面向全球用户的场景下,不建议仅展示三字母缩写。这类缩写的地域属性极强,非对应区域的用户很难准确理解其指代范围,更友好的展示方式是搭配UTC偏移量说明,例如「UTC-4 美国东部夏令时」,避免出现理解偏差。
- 所有映射关系需要经过人工校验白名单,禁止直接将全量时区数据库的缩写映射同步到前端展示层,避免冷门内部标识、历史标记出现在用户可见的页面上。
内容的提问来源于stack exchange,提问作者FosAvance
相关产品推荐
相关产品推荐

