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 和导出协议采用明确机器格式;向用户展示时另行本地化,不让显示格式反向成为数据交换契约。