E2.14.3ambiguous twelve-hour clock设计研究
十二小时制需明确上下午
别名: am pm · 12小时制歧义 · 七点是早是晚
概念解释
12 小时钟把一天拆成两圈 1–12,同一串数字对应两个时刻。上下午标记(a.m. / p.m.)是解开这组双射的那一位。缺了它,「7:00」可能是上班,也可能是晚饭。二十四小时制没有这重歧义。它管的是钟面数字的二义性,不是跨午夜的日期归属,也不是一档多少分钟。
机制
人在口语里常省掉上下午,靠情境补(「七点见」在办公室默认早上)。界面没有共享情境,省掉的那一位必须写回来。更糟的是 12:00:有人把 12 a.m. 当午夜,有人当正午,调查里这项错误稳定存在。控件若用下拉选小时 1–12 却把 a.m./p.m. 做成小字或默认 a.m.,默认就会把一半预约搬到错误半日。从 24 小时制地区来的用户可能把 19:00 打进小时框变成 7:00 且不改上下午。歧义发生在编码层:两位数字映射两个绝对时刻。
怎么研究
让使用 12 小时制和 24 小时制的人各填一组时刻(7 点上班、7 点晚饭、正午、午夜),记录选错半日和 12:00 解释。自变量:是否强制选择 a.m./p.m.、12 是写成 12 还是 0、默认值。因变量:半日错误率、12:00 混淆。不要只用下午茶时间当刺激,那会掩盖午夜/正午。口头「七点」与界面数字要对着问,才能看见情境补偿有没有发生。
边界
产品只在 24 小时地区使用、且系统语言也是 24 小时,不必上 12 小时制。系统区域设置是 12 小时时,作者硬用 24 小时会和用户的钟面习惯冲突,歧义换成「19 点是不是晚上 7 点」。语音输入「seven pm」若被听成 7:00 且丢掉 pm,错误在识别层。全天事件不该走 12 小时钟。
怎么落地
- 在 12 小时界面上让 a.m./p.m. 与小时同样显眼,且必须显式选择,不要默认为 a.m.。
- 把 12:00 写成「正午 / 午夜」或同时给出 12:00 p.m.(noon)这类消歧义标签,不要只写 12 AM。
- 允许切换 24 小时制,并在两种写法之间转换时保住绝对时刻。
- 验证:预约早上 7 点和晚上 7 点、正午和午夜。四次里任何一次落到错误半日,标记就还不够硬。再问一句「12 a.m. 是什么时候」,听解释是否和系统一致。