把手机时区从北京改成乌鲁木齐,时间不会动一格;但要是按太阳的位置校对,两地的真太阳正午相差接近 3 小时。时区这回事,地理给出原料,政治给出成品。
时区的地基:360 度除以 24 小时
1884 年华盛顿国际经线会议把全球划成 24 个理论时区,每区跨 15 个经度(360°÷24=15°),区内统一采用中央经线的地方时。东八区的中央经线是东经 120 度,理论带宽从 112.5 度铺到 127.5 度,「北京时间」就是这条带的法定时间,等于 UTC 加 8 小时。而北京天文台位于东经 116.4 度,离中央经线差 3.6 度;地球自转 1 度约合 4 分钟,3.6 度就是 14.4 分钟。钟面指到 12 点整,北京上空的太阳其实还没走到当天最高点。再叠加地球轨道偏心率造成的均时差,真太阳正午全年在钟面 11 点 44 分到 12 点 25 分之间摆动。所以「北京时间不是北京的时间」不是调侃,而是定义本身:它是整条经度带共用的刻度,不是首都的本地钟。
九百六十万平方公里共用一个钟
中国领土从东经 73 度延伸到 135 度,横跨理论上的五个时区。1949 年之前确实切过长白、北京、中原、昆仑、新疆五块,之后收拢为单一北京时间。统一时钟让铁路时刻表、电视播音和全国市场受益,成本却由西部居民垫付:乌鲁木齐的冬天按北京时间 9 点半天才亮,喀什的钟面正午落在 14 点前后。当地民间长期并行一套「新疆时间」(UTC+6)安排作息,而列车、航班、考场仍以北京时间为准。在 世界时间页里把北京和乌鲁木齐并排放,两城读数永远相同,这正是单一时区最直观的呈现。
时区边界是政治账,不是地理账
若完全按经线过日子,穿过伦敦的零度经线该让英国常年停在 UTC+0,而马德里位于西经 3.7 度,本该也属零时区,却从 1940 年起为跟随柏林改用 UTC+1,以致西班牙夏天钟面 22 点天才黑,欧洲同事戏称「西班牙活在别人的时区里」。印度横跨东经 68 到 97 度,索性取了半步的 UTC+5:30,尼泊尔再细一档用 UTC+5:45。俄罗斯在 2010 年前后成批裁撤又恢复时区,朝鲜 2015 年把时钟拨到对应平壤经度的 UTC+8:30、三年后又改回 UTC+9。每一条边界背后都是行政决定,而不是太阳。
一天从几点、哪条线起算,也是约定
时区解决「钟表拨几小时」,另一半问题是「哪天算起点」。国际日期变更线沿 180 度经线走,却专门绕着白令海峡拐了个大弯,免得把阿留申群岛劈成两个日期;汤加与萨摩亚隔海相望,日历整整差一天。财经新闻里「美东 14 点公布、对应北京时间次日凌晨 2 点」的换算,夏令时与冬令时还各差一小时——这也是为什么工程上绝不能硬编码「+8」「-5」这类数字:同一个城市的偏移量随季节变化,写死就等着在协调世界时上翻车。
软件里的正确姿势:UTC 加一张活表
工程共识只有一句:存储一律用 UTC 时间戳或带偏移的 ISO 8601 字符串,展示时才换算成用户所在地的墙上时钟。而「某地区此刻相对 UTC 差几小时、何时切换夏令时」由 IANA 时区数据库(tzdata)维护,它收录约 600 个时区条目,每年随各国政区与夏令时改动更新数轮——手机时间自动走准,多半是这张表在后台悄悄更新了。跨国订票、约会、算发版时间,归根到底都是拿 UTC 去对两张表,而不是拿钟面对钟面。