凌晨十二点算am还是pm?

2024/11/3 10:23:20 作者:佚名 来源:伊秀娱乐网
凌晨十二点算am还是pm?

=== 先回答问题 ===

答案是,在12小时制中,12:00 这个时刻的用法存在少量歧义。大部分场合用 12 AM 表示午夜并且代表一天的开始,个别场合用 12 AM 表示午夜并且代表一天的结束;但历史上存在极少量情况用 12 AM 表示中午。对应的,12 PM 大部分时候表示中午;但极少量情况是午夜。

和日期一起出现时, 12 AM 表示这天开始的午夜时刻,还是表示这天结束的午夜时刻,两种用法均存在。从编程的角度考虑,前者简单一点。一般而言,电脑或手机都会是这么显示的,基本上这成为了事实标准。但生活中有时不是太靠得住,这点在喜欢使用12小时制的国家(例如美国)特别明显。例如某电商打算11月11日一整天进行促销活动,对于中国这样习惯了24小时制表达的地方一般问题不大,海报文案宣传就说从11日0点开始好了,基本上没人会理解错。可是对于习惯了12小时制的美国,这个就不好表述了:如果说 12 AM on Nov 11th,会有不少人人11日晚上才开始准备然后等到12日凌晨…

=== 然后是解决方案 ===

最简单的解决方案当然是用24小时制,每天从 00:00:00 到 23:59:59。强迫症和码农们一看,无比和谐。

可是习惯的力量很强大,我的经验是逼老美习惯24小时制,比逼他们使用公制单位痛苦得多——个人位于某研究机构,和老美同事交流基本说公制单位他们都懂,因为各种仪器上标的都是公制,一般迟钝下也就换算过来了;但若要预约下午2点开会,跟他们说“at fourteen”打死也不会明白,他们只懂“at two”,连“PM”都经常性省掉。

美国军队倒是使用24小时制;一是打仗约错了行动时间要出大事,二是美国军队遍布全球。

老美实际生活中一种常见的解决方案是,避开两个12:00。所以去看 Apple Watch 的在线抢购开始时间,是太平洋时间(PST)4月10日 12:01 AM。查火车和长途汽车时刻表的出发或到达时间,很多都要么是 11:59,要么是 12:01。

(附图:灰狗巴士官网

Greyhound.com

查到的华盛顿 Washingtong, DC 到波士顿 Boston, MA 的时刻表,可以看到中午那班的发车时间故意往后挪了1分钟)

另一种解决方案,同时也是美国国家标准技术研究所(NIST)的推荐方案是:两个 12:00 不用 AM 也不用 PM,一个叫做 12:00 (midnight),另一个叫做 12:00 (noon),有时候就省去时刻本身写成 midnight 和 noon。这个有时用于营业性场所贴出来的开门关门时间等。

——不过这个方案依然没解决另一部分的问题:12:00 (midnight) 是指一天的开始还是结束?也就是,11月11日 midnight 究竟是指和11月10日相邻的那个时间点,还是和11月12日相邻的那个?

(附图:一家连锁超市网站

Farm Fresh Supermarkets

提供的各分店营业时间;从上下文可以推断出 midnight 指的是这天的结束和下一天的开始,这就是开头说的少量例外情况。)

=== 一点思考:为什么会搞成这样? ===

其实12小时制中12点表示方式的混乱,代表着序数计数法和基数计数法混用的冲突。

对于日期,年月日都是序数计数,“1月”表示某年的第一个月、“2日”表示某月的第二天,不存在“0年”“0月”“0日”这样的说法(公元1年12月31日后是公元2年1月1日)。

对于24小时制,时分秒都是基数计数,“0点”代表一天最初的那个时刻,“02分”代表一小时内开始两分钟后的一个时刻。所以容许有“0点”“00分”“00秒”的说法(每天23:59:59后是00:00:00)。

然则12小时制发生了一个问题:“时”采用了序数计数,从1-12循环(或者说是12,1,2,...,10,11循环),而“分”“秒”采用的是基数计数,00-59循环。两者混用,交界点就出了问题(11:59:59 AM 后是12:00:00 PM;12:59:59 PM 后是 1:00:00 PM……)。

再扩展思考一下,那么为什么正常情况下 年、月、日 采用序数计数,分、秒 采用基数计数,而 时 则是两者均有呢?

因为 年-月-日-时-分-秒,越靠前的所代表的时间尺度越大,原本作用更倾向于

记录时间点

;而越靠后的所代表的时间尺度越小,原本作用更倾向于

记录时间间隔

在最初的生活中,不存在“二月份”是“一月份”的两倍的概念,所以不需要从而也自然不会使用“0”这个数字。很多考古历史研究都指出不同文明基本在使用正整数计数后好长一段时间才会有“零”的概念,所以基本所有历法都不会用0来标记年月日。

这个时候“年”“月”“日”也被衍生用于记录时间段间隔,但通常只是个大概值。例如说“3年后”,基本不会是精确到三年后同一日的此时此分此秒。“3日后”精确度要求可能高一些,但一般也很少纠结到具体时刻。

与此相反,“分”“秒”这样的单位,从产生开始就用于记录时间间隔。所以,“两分钟”必须是“一分钟”的两倍,那么就必须要有“0分钟”这个概念。例如说“3分钟后”,基本上暗含的精度常常会到秒。而“0.3秒”后,更是确凿的只能是 0.0 - 0.1 - 0.2 - 0.3 这样。

然后就是“时”,尺度介于上述两者之间,所以用于

记录时间点

记录时间间隔

两者都很常见:例如“某事件发生于2001年2月3日上午4时”,这是时间点,此时不习惯用基数计数法的“0时”,而会说序数计数法的“12时”;再如“男子马拉松世界纪录2时02分57秒”,这是时间间隔,此时肯定只能用基数计数法的“0时”,而“12时”则是一个绝对不能混用的概念——中文口语中,会用“X点”和“X小时”区分“时”的这两种用法;英文要强调差别可以说“X o'clock”和“X hours”;其他语言也有类似的区别表述方案——所以回头看,“12时”这个概念的混乱的根源可能就在这里。

顺便说一句,用纯基数计数法的24小时制除了没这么多麻烦,还有一点好处:需要的时候可以扩充记录表示法。例如,2014巴西世界杯决赛的直播开始时间是北京时间7月14日03:00,也可以写成7月13日27:00(最好括号同时标注),方便大家一看就知道该13日晚上等着。这个是12小时制无论如何也做不到的。

=== 最后的个人感叹 ===

24小时制就是好,就是好,就是好……

美帝单位制各种糟,各种糟,各种糟……