S2.01.1Locale-specific date field order设计

年月日的顺序随地区不同

别名: 日期字段顺序 · 地区日期格式 · locale date pattern

概念解释

地区化日期字段顺序(locale-specific date field order)是由用户的语言与地区约定决定年、月、日如何排列、分隔和命名,而不是在界面中固定成某一种顺序。即使底层表示同一天,输出也可能使用日—月—年、月—日—年或年—月—日,并随长、中、短格式改变月份名称和标点。产品应存储日期语义,再交给地区数据与格式化库生成文本。

机制

日期顺序是读者长期习得的模式,熟悉格式可让人快速把数字映射为字段;错误顺序则会把同一组数字解析成另一天。格式不仅是调换三个片段:月份可能用数字、缩写或完整名称,年份可能需要纪元,文字与标点也有本地语法。硬编码模板会跳过这些关联规则。使用带字段语义的日期对象与 locale 格式 skeleton,库才能为所需信息密度选择完整模式。

边界

语言标签不足以总能决定格式,同一语言在不同地区可有不同惯例,用户也可能显式覆盖系统地区。ISO 8601 的年—月—日适合机器交换、排序和某些专业场景,但不自动等于所有面向用户界面的首选格式。年月日顺序也不解决时区、历法或“某一天”与“某一瞬间”的建模问题。

怎么落地

  • 数据层保存日期或时间语义,不保存已按某地区拼好的显示字符串;明确字段表示纯日期、本地时间还是带时区瞬间。
  • 调用平台的 locale-aware 日期格式器,以字段集合和长短样式表达意图,不自行拼接 year + month + day
  • 使用完整 locale(含地区及用户覆盖)测试多个格式长度,并检查月份、纪元、分隔符、窄屏换行与辅助技术读法。
  • 对日志、API 和导出协议采用明确机器格式;向用户展示时另行本地化,不让显示格式反向成为数据交换契约。

延伸

  • 同组S2.01.2 纯数字日期存在歧义 · S2.01.3 十二小时制与二十四小时制的地区偏好 · S2.01.4 周起始日随地区不同 · S2.01.5 非公历历法的并存显示
  • 相邻S2.02 数字、小数与千分位 · S2.06 时区与夏令时
  • 站内检索locale date pattern · date skeleton · Unicode LDML dates

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/S2.01.1