查日出日落的人多半只问"几点"。但真要用起来——拍照、挑房、判断冬天下午几点天黑——"几点出来"和"从哪边出来"是两件事,后者往往更管用。夏至和冬至就是这两件事的极值:一个定时间,一个定位置。有意思的地方在于,时间上的最大值和位置上的最大值并不落在同一天。
🌍 一、太阳直射点在南北回归线之间往返
地轴倾斜 23.44°,地球绕着太阳走一圈,太阳直射点就在南北纬 23.44° 之间走一个来回,这两条线就是南北回归线。直射点所在的纬度,天文学上叫太阳赤纬 δ,夏至 +23.44°,冬至 −23.44°,春分秋分 0°。
2026 年四个节点的北京时间(用 astronomy-engine 天文引擎算出):春分 3 月 20 日 22:46、夏至 6 月 21 日 16:25、秋分 9 月 23 日 08:06、冬至 12 月 22 日 04:50。注意冬至落在 22 日,每年会有一天左右的浮动。
赤纬最直接的表现是正午太阳高度:
北京纬度 39.90°,代进去:夏至 h = 90 − |39.90 − 23.44| = 73.5°,冬至 h = 90 − |39.90 + 23.44| = 26.7°。两个数相加正好 100.2°,等于 2 × (90 − 39.90)——夏至比冬至高出的那部分,恰好是赤纬摆幅的两倍。这是可以直接拿影子验证的:冬至正午北京 1 米高的杆子投出约 1.99 米的影子,夏至只剩 0.30 米。
🔑 直射点走得不匀速
- 二分前后最快:春分那几天,太阳赤纬每天变化约 0.395°,一天差出三分之一的度。
- 二至前后几乎不动:夏至和冬至当天,赤纬的日变化只有约 0.002°,十天累计不到 0.02°。英文 solstice 的本义就是"太阳停住"。
- 所以二至附近的时间是"稳"的:北京夏至前后一周,日出时间的差别只有几十秒;春分前后一天能差两分钟以上。
⏰ 二、夏至日出最早,还是日落最晚?
都不是夏至当天。北京 2026 年的实测:最早日出在 6 月 14 日 04:45:16,夏至当天是 04:45:56,晚了 40 秒;最晚日落落在 6 月 27 日 19:47:03,夏至当天 19:46:20,早了 43 秒。差得不多,但方向很明确——最早日出在夏至之前,最晚日落推到夏至之后。
| 日期(2026) | 日出 | 日落 | 白昼 | 太阳中天 |
|---|---|---|---|---|
| 6 月 14 日(最早日出) | 04:45:16 | 19:44:07 | 14h58m | 12:14:37 |
| 6 月 21 日(夏至) | 04:45:56 | 19:46:20 | 15h00m | 12:16:08 |
| 6 月 27 日(最晚日落) | 04:47:41 | 19:47:03 | 14h59m | 12:17:25 |
表里最后一列是解开这件事的钥匙。白昼最长的确实是夏至(15h00m),但日出日落时刻不只看白昼长度,还要看太阳什么时候过中天:日出 = 中天 − 半昼长,日落 = 中天 + 半昼长。而太阳中天时刻本身在漂移——夏至前后的真太阳日比 24 小时长约 13 秒,中天每天就要推迟 13 秒。表里 13 天累计推迟了 2 分 48 秒,正好对得上。
夏至之前,半昼长还在增加(把日出往前推),中天的推迟把日出往后拉,两者抵消的那天就是 6 月 14 日。夏至之后半昼长开始缩短,但头几天缩短得比中天推迟慢,日落就继续往后挪,一直挪到 6 月 27 日才掉头。用一句话说:夏至那天的"长"是真的,只是太阳每天还迟到十几秒,把两个极值推到了夏至的两侧。
📉 三、为什么最晚日落不在冬至当天
先说清楚冬至是什么:它确实是白昼最短(北京 9h20m)、正午太阳最低(26.7°)、日出方位最偏南(120.4°)的那一天。但"最早日落"和"最晚日出"都不在冬至,而全年最晚日落压根是夏天的事——6 月 27 日的 19:47:03。
北京的数据是这样的:最早日落 12 月 7 日 16:49:11,冬至当天 16:52:55,晚了 3 分 44 秒;最晚日出 1 月 5 日 07:36:11,冬至当天 07:32:39,早了 3 分 32 秒。两个极值一个在冬至前 15 天,一个在后 14 天,中间隔了将近一个月。
原因还是中天漂移,只是冬至这回更夸张。冬至前后的真太阳日是全年最长的,接近 24 小时 30 秒,太阳每天迟到约 29 秒。北京 12 月 7 日的中天是 12:05:41,到 1 月 5 日变成 12:19:38,29 天推迟了 13 分 57 秒,一天 29 秒,算得严丝合缝。而冬至前后白昼长度的变化慢到每天不到 1 秒,根本压不住这个推迟,于是两个极值被推到冬至两边。
🗺️ 错位多少天,跟纬度有关
- 广州(23.13°N):最早日落 11 月 28 日,最晚日出 1 月 15 日,相差 48 天。低纬度白昼年变化小,中天的匀速推迟更容易占上风。
- 乌鲁木齐(43.83°N):12 月 9 日与 1 月 3 日,相差 25 天。
- 漠河(52.97°N):12 月 13 日与 12 月 30 日,只差 17 天。纬度越高,白昼长度的季节曲率越大,很快就把中天的漂移盖过去了。
所以"冬至是最黑的一天"只在一个意义上成立:白昼最短。要说天黑得最早,那是 12 月上旬的事;要说早上亮得最晚,得等到 1 月初。
🧭 四、日出方位角从东北到东南的变化轨迹
方位角是太阳升起时在地平线上的位置,从正北起算顺时针计:正东 90°,正南 180°,正西 270°。它只由纬度和赤纬决定:
北京代入:δ = 0° 时 A = 90°,正东出、正西落;δ = +23.44° 时 A = 57.9°,东偏北 32.1° 出、西偏北 32.1° 落;δ = −23.44° 时 A = 120.4°,东偏南 30.4° 出、西偏南 30.4° 落。全年在 62.5° 的范围内来回摆一次。
| 日期(每月 1 日) | 日出方位 | 日落方位 | 日期(每月 1 日) | 日出方位 | 日落方位 |
|---|---|---|---|---|---|
| 1 月 | 119.8° | 240.2° | 7 月 | 58.4° | 301.6° |
| 2 月 | 111.9° | 248.3° | 8 月 | 65.4° | 294.4° |
| 3 月 | 99.3° | 260.9° | 9 月 | 78.3° | 281.4° |
| 4 月 | 83.5° | 276.7° | 10 月 | 93.3° | 266.4° |
| 5 月 | 69.6° | 290.7° | 11 月 | 108.1° | 251.7° |
| 6 月 | 60.0° | 300.2° | 12 月 | 118.1° | 241.8° |
摆幅随纬度放大:广州 51.3°(64.0°→115.2°),上海 55.4°,北京 62.5°,乌鲁木齐 66.9°,漠河拉到 82.7°(47.2°→129.9°)。同样是一次夏至,漠河的太阳是几乎从正北偏东的方向钻出来的。记住一句就够用:夏半年东北升西北落,冬半年东南升西南落,只有春秋分是正东正西。
🏠 五、建筑朝向与采光设计上的应用
中国绝大部分地区在北回归线以北,正午太阳永远在南边天空。这一条决定了朝向的基本盘:南向是全年唯一稳定有直射光的立面。
冬天:北向房间整日没有直射
北京冬至日出 120.4°、日落 239.6°,太阳全天只在南半天活动,既没到过正东也没到过正西。南窗从早晒到晚,北窗一整天都是散射光。这是北方朝北房间冬天阴冷的直接原因——不是保温差,是太阳根本没走到那一侧。
夏天:清晨和傍晚,太阳能照进北向房间
反过来看夏至:日出 57.9°、日落 302.1°,太阳从东北升起、在西北落下。这意味着夏天早上五六点和晚上七八点,低角度的阳光能斜着打进朝北的窗户。白天最热的时段北向确实没太阳,但早晚那两个小时是有的。
西晒为什么最难熬
夏至北京日落方位 302.1°,太阳要到西北方向才落下去,西向墙面整个下午都在被照,而下午恰好是一天气温最高的时段。东墙虽然也有上午的直射,但那时气温低、升温慢,体感差别很大。
楼间距可以用冬至正午的影子算。下面是各地冬至正午的影长比——楼高 1 米时投出的影长(北京按 12 月 22 日冬至计算):
| 城市 | 纬度 | 冬至正午高度 | 影长比 | 夏至正午高度 |
|---|---|---|---|---|
| 漠河 | 52.97°N | 13.7° | 4.12 | 60.5° |
| 乌鲁木齐 | 43.83°N | 22.8° | 2.38 | 69.6° |
| 北京 | 39.90°N | 26.7° | 1.99 | 73.5° |
| 喀什 | 39.47°N | 27.1° | 1.95 | 74.0° |
| 上海 | 31.23°N | 35.4° | 1.41 | 82.2° |
| 广州 | 23.13°N | 43.5° | 1.06 | 89.7° |
北京冬至正午的影长接近楼高的两倍,广州只比楼高多一点点。这是北方小区楼间距明显大于南方的量化原因。不过要说明:影长比算的是正午那一瞬间,是"正午不遮挡"所需间距的上界;实际规划标准多按大寒日或冬至日连续 2 小时满窗日照来定,取值会比这个数字小一些,各城市规定也不一样。把它当成南北差异的量级来看,别当成设计依据。
同一个数字反过来用就是进光深度:北京冬至正午,阳光射进室内的水平深度约为窗台高度的 1.99 倍;夏至只有 0.30 倍。所以南向大窗在冬天能把阳光送到房间深处,夏天太阳高,同样的窗户反而进不了多少光——这正是被动式太阳能设计最省力的那一半。