真太阳时与北京时间:为什么正午 12 点太阳不在头顶

北京 2 月中旬,太阳升到最高的那一刻是北京时间 12:29;到了 11 月初,这个时刻提前到 11:58。手表一分没改,太阳自己在一年里走出了 31 分钟的偏差。这中间夹着两层原因:中国全境用的是东经 120° 的时间,而真太阳时本身也不是匀速的。

"正午"这个词本来指的是太阳最高、影子最短的那一刻。可我们手表上的 12:00 跟它基本对不上,在北京差十几分钟,在乌鲁木齐差两个多小时。这不是谁错了,是两套时间系统各管一段:手表走的是全国统一时区的平太阳时,太阳走的是当地的真太阳时。要把它们对上,得先把这两层拆开。

🕐 一、平太阳时与真太阳时的定义差别

真太阳时以天上的太阳为准:太阳连续两次经过当地子午线(一天里升到最高的那个位置)之间的时间,是一个真太阳日;太阳过子午线的那一刻,就是当地的真太阳时 12:00。它是唯一能直接用影子读出来的时间。

问题是真太阳日并不等长。地球轨道是椭圆,公转速度时快时慢;地轴又是斜的,太阳在黄道上走,而我们按赤道方向投影来计时。两个因素合起来,真太阳日的长度在一年里从约 23 小时 59 分 39 秒(9 月中旬)变到约 24 小时 30 秒(12 月底),最多相差 51 秒。用这种尺子计时,钟表根本造不出来。

平太阳时就是把这个尺子拉平:假想一个太阳在赤道上匀速走,一年下来取平均,每天恰好 86400 秒。手表、手机、北京时间,用的都是平太阳时。拉平之后,手表时间和真太阳时之间就留下了差值——这就是均时差。

🔑 一句话区分

  • 真太阳时:太阳说了算,看影子就能读,但每天长度不一样。
  • 平太阳时:日历和钟表说了算,每天严格 24 小时,跟天上的太阳对不上是常态。
  • 地方时:某条经线上的平太阳时。东经 120° 的地方时就是北京时间。

📈 二、均时差:全年 -16 分钟到 +14 分钟的波动

均时差的符号约定有两套,很容易看晕。本文统一用 EoT = 平太阳时 − 真太阳时,按这个写法全年范围是 −16.4 分钟到 +14.2 分钟;如果把符号反过来定义,同一组数值就写成 −14.2 到 +16.4。两种说法指的是同一件事,读的时候先看清楚作者用的是哪一种。

用北京 2026 年的实测(真太阳时相对平太阳时的快慢):2 月 10—11 日真太阳时落后最多,慢 14.2 分钟;11 月 2—3 日领先最多,快 16.4 分钟。一年里有四天两者正好相等:4 月 16 日、6 月 13 日、9 月 1 日和 12 月 25 日前后。

日期(每月 1 日)真太阳时快(+)/慢(−)日期(每月 1 日)真太阳时快(+)/慢(−)
1 月−3.4 分7 月−3.9 分
2 月−13.5 分8 月−6.4 分
3 月−12.4 分9 月−0.1 分
4 月−4.0 分10 月+10.2 分
5 月+2.9 分11 月+16.4 分
6 月+2.2 分12 月+11.1 分

这条曲线是两个周期不同的波动叠出来的。第一个是轨道椭圆:地球 1 月初过近日点走得快,7 月初过远日点走得慢,贡献的振幅约 7.7 分钟,一年一个周期。第二个是地轴倾斜 23.44°:太阳沿黄道跑,我们却按赤道方向投影计时,贡献的振幅约 9.9 分钟,半年一个周期。一个一年一轮、一个一年两轮,加在一起就有了四个过零点——这也是为什么均时差曲线长得有点歪,上下不对称。

🌐 三、经度时差与均时差的叠加效应

均时差只解释了一部分。中国全境用北京时间,也就是东经 120° 的地方平太阳时。地球每小时转 15°,每 1° 差 4 分钟,谁不在东经 120° 上,谁就先背一笔固定偏差。

真太阳时 = 北京时间 +(当地经度 − 120°)× 4 分钟 − EoT(平太阳时 − 真太阳时)

括号里的经度项是固定的,一年到头不变;EoT 才是摆动的那部分。两者叠加的结果,可以从"太阳中天时刻"直接看出来——下面这些数字是用 SunCalc 天文算法逐日算出来的 2026 年全年极值:

城市经度经度修正太阳中天最早太阳中天最晚摆幅
漠河122.54°E+10.2 分11:33(11/2)12:04(2/11)30.6 分
上海121.47°E+5.9 分11:38(11/3)12:08(2/10)30.6 分
北京116.41°E−14.4 分11:58(11/2)12:29(2/10)30.6 分
广州113.26°E−26.9 分12:11(11/3)12:41(2/11)30.6 分
乌鲁木齐87.62°E−129.5 分13:53(11/2)14:24(2/11)30.6 分
喀什75.99°E−176.0 分14:40(11/3)15:10(2/10)30.6 分

表里最值得看的是最后一列:六个城市的摆幅全是 30.6 分钟。经度只把整条曲线上下平移,摆动幅度完全由均时差决定。乌鲁木齐的正午之所以在下午两点前后,绝大部分是经度账(慢 129.5 分钟);北京正午在 12 点前后晃,靠的是两笔账刚好抵消掉一部分(−14.4 分钟的经度差遇上最多 +16.4 分钟的均时差)。

所以"正午 12 点太阳不在头顶"这句话,在喀什是差两个多小时,在北京是差最多半小时,性质完全不一样。

⏳ 四、日晷读数为什么总跟手表对不上

日晷量的就是真太阳时。赤道式日晷的晷针与地轴平行,盘面平行于赤道面,刻度是等分的——它读出来的 12:00,就是太阳过当地子午线的那一刻,不多不少。问题出在我们拿手表去对它。

以北京为例,把上一节的数字换个方向读:日晷指到 12:00 的时候,手表上的时间是 11:58(11 月初)到 12:29(2 月中旬)。全年偏差在 −2 分钟到 +29 分钟之间来回摆。日晷没走错,是我们的时间系统里塞了两件它不知道的事:全国统一时区,以及平太阳时。

🔧 除了时制,日晷本身还有误差

  • 安装经度不对:日晷的刻度是按某条经线刻的。在北京装一台按东经 120° 刻度的日晷,它会永远慢 14 分钟,跟均时差无关。
  • 影子有半影:太阳视直径约 0.5°,晷针投影的边缘是模糊的,读数精度大约 ±1 分钟,再高就没有意义了。
  • 冬半年更难读:北京冬至正午太阳高度只有 26.7°,影子又长又淡,同样一根针,冬天的读数误差明显大于夏天。
  • 水平式日晷的刻度本来就不等分:它的时角刻度要按纬度重新计算,直接拿赤道式的等分刻度去套,误差会随季节变化。

想直观看到影子怎么走,可以调一台在线日晷:改纬度、改日期、拖时间,看影子在盘面上扫过的角度。用在线日晷模拟器把日期定在 2 月 11 日,再把手表时间和晷面读数对一遍,那 29 分钟的偏差会非常直接。

🧮 五、如何换算所在地的真太阳时

按前面那个公式,分三步算就行。

01

查当地经度,算经度修正

修正量 =(经度 − 120°)× 4 分钟。东经大于 120° 为正,小于为负。北京 116.41° → −14.4 分钟;乌鲁木齐 87.62° → −129.5 分钟。手机地图或任一城市信息页都能查到经度。

02

查当天的均时差

用第二节那张表按月份插一个近似值就够日常用了。要精确值,可以按 NOAA 的近似式算:EoT(真−平)≈ 9.87 sin 2B − 7.53 cos B − 1.5 sin B,其中 B = 360° ×(年内第 N 天 − 81)÷ 364,结果单位为分钟,全年误差一般不超过 1 分钟。

03

相加

真太阳时 = 北京时间 + 经度修正 + EoT(真−平)。反着用也行:已知真太阳时要求北京时间,把两项减掉即可。

举两个例子。乌鲁木齐(87.62°E)11 月 3 日,EoT(真−平)= +16.4 分:真太阳时 = 北京时间 − 129.5 + 16.4,太阳中天时真太阳时为 12:00,对应北京时间 13:53。北京(116.41°E)2 月 11 日,EoT(真−平)= −14.2 分:真太阳时 = 北京时间 − 14.4 − 14.2,太阳中天对应北京时间 12:28。这两个数字和前面表里逐日算出来的结果一致。

换算出来的真太阳时有什么用?看日晷、算传统节气时刻、判断太阳此刻在天空的哪个方位、规划一天里的采光和拍摄角度,都用它。日常作息、赶车开会当然还是看北京时间——毕竟全国共用一条时间线的好处,远大于那几十分钟的天文误差。

⏱️ 自己动手算一遍:加减分钟这类换算可以用时间计算工具完成,把经度修正和当天的均时差依次加上去;想验证结果,就用在线日晷模拟器把纬度、日期设好,拖到算出来的时刻,看影子是不是正好落在晷面的正北方向(最短)。