S2.01.5Parallel display of calendar systems设计
非公历历法的并存显示
别名: 多历法显示 · 非公历日期 · calendar preference data
概念解释
历法并存显示(parallel display of calendar systems)允许同一民用日期按地区常用或用户选择的公历、佛历、日本历、伊斯兰历等历法呈现,并在任务需要时同时显示两个系统。历法不是把年份换一个数字:月份、纪元、闰规则和日界都可能不同。产品必须保持底层日期语义,使用支持相应历法的库转换和格式化。
机制
不同历法用各自规则把连续时间组织成年、月、日与纪元;同一瞬间或民用日会得到不同字段值。地区偏好数据可给出常用历法及默认顺序,但个人宗教实践、机构规定和具体任务仍可能要求另一个系统。若数据库只保存某次格式化后的年份与月份,切换历法会丢失可逆映射;若只把公历年份加常数,又会在纪元、闰月或月界处出错。
边界
并存显示并非所有界面都需要;额外日期可能增加密度和误读,应服务于明确的识别、合规或协调任务。某一地区“常用”多个历法不表示每位用户都熟悉它们,也不代表宗教历法的观测与计算变体可由一个固定算法完全覆盖。历史日期还涉及历法改革与适用范围,不能把现代换算规则无限回推。
怎么落地
- 区分瞬间、时区中的民用日期和历法字段,保存可转换的规范语义及使用的历法/时区,不只保存显示文字。
- 以 locale 的历法偏好作为默认候选,同时允许用户或业务选择;主次并列时明确标注历法和纪元,不让两个年份看似冲突。
- 使用成熟国际化库处理月份、闰规则和纪元,并针对目标历法的年界、闰月、日界与历史范围建立测试。
- 与目标地区用户核验并存是否真正帮助预约、证件、节日或合规任务;若只增加视觉负担,应保留按需展开或单一首选。