
“真太阳时不是真太阳时而是假的真太阳时”——这句话乍看像绕口令我第一次见到时以为是不小心打错字。后来拿日晷、天文软件和几种排盘工具反复对了几个月才意识到这句话其实是很多“真太阳时”实现方式的真实写照你按网上公式算出来的“真太阳时”很可能只是地方平太阳时也就是把东八区钟表按经度拨到你家门口但完全没有理会太阳在一年里真正的快慢变化。天文学意义上的真太阳时Apparent Solar Time也叫视太阳时是很朴素的东西太阳影子最短、方位指向正北的那个瞬间就是当地视正午12点。古人没有钟表日晷读到的就是这个时间。问题在于现代人手里只有钟表时间钟表走的是另一个叫“平太阳时”的东西。两者之间的换算需要经历两次修正先按经度差把钟表时间平移到当地再按“均时差”Equation of Time简称EoT把太阳的真实视运动补回去。大多数教程和工具只做了第一步就急着把结果命名为“真太阳时”。这还不是最绕的。再往深一层看连天文学上的真太阳时本身在钟表时代也只能靠公式“反推”出来日晷读数反而成了需要换算的对象。所谓“真的真太阳时”某种意义上也是一种被计算出来的仿真时间。这篇我就从这三个层面把它聊透真太阳时的定义、假真太阳时怎么来的、从北京时间换算到真视太阳时到底要几步以及怎么快速验证你手里的工具有没有“造假”。1. “真太阳时”三种面孔哪一个是真哪一个是假1.1 天文学定义里的真太阳时以日晷为准的视太阳时天文学上的真太阳时也叫视太阳时它的定义一句话就能讲完以太阳真实视位置为基准的时间。太阳连续两次经过当地子午线也就是正南或正北方位的时间间隔就是一个真太阳日。太阳影子最短、方向指向正北的那个瞬间就是当地视正午也就是真太阳时12点整。这个定义直接对应日晷读数。你架一个水平日晷晷针影子转到正北时读到的就是真太阳时12点。日晷不需要“计算”不需要“修正”不需要查表它记录的就是地球自转和公转叠加之后太阳的真实位置。在这个意义上日晷才是真太阳时的“原生设备”现代人手里的钟表和手机反而是后来才出现的仿真工具。但问题也恰恰出在这里真实不等于均匀。地球绕太阳公转的速度不是恒定的地轴也不是垂直于公转轨道面的所以真太阳日的长度在一年里并不固定短的时候约23小时59分39秒长的时候约24小时0分30秒。换句话说太阳自己走出来的“一天”不是我们钟表上固定24小时的一天。1.2 地方平太阳时被错叫成“真太阳时”的最大嫌疑对象与真太阳时相对的概念叫平太阳时Mean Solar Time。它假设天上存在一个“平均太阳”这个平均太阳每天均匀地行走24小时全年无休、从不变速。钟表、时区、手机、航班时刻表全部建立在这个均匀假设之上。而北京时间本质上就是东经120°的地方平太阳时。注意这里说的是“东经120°的地方平”不是“北京的地方”。北京城的经度大约是116.4°E严格来说北京地方平太阳时比北京时间要慢14分24秒。只不过现代人习惯了时区制不会去较真“北京时间的北京”到底指哪个北京。很多教程会告诉你说真太阳时 北京时间 当地经度 - 120°× 4分钟。你按这个公式算出来的到底是什么算出来的是“地方平太阳时”——把东经120°的钟表时间平移到你所在城市的经度上。它仍然属于“平均太阳时”体系太阳还是那个假想的匀速太阳完全没有引入太阳真实的视运动。这就是标题里“假真太阳时”的由来顶着真太阳时的名字算的却是平太阳时的内容。这一步只解决了“经度”问题没有解决“太阳真假”问题。1.3 为什么市场上到处都管它叫“真太阳时”这个混乱有历史原因。过去排八字、择日、看节气用的都是当地日晷时间也就是真太阳时。到了现代大家手里只有钟表钟表走的是平太阳时。为了把钟表时间“还原”成古人概念里的日晷时间最直观的修正当然就是按经度补时差你在东经120°以东时间就加一点在东经120°以西时间就减一点。这个修正太自然了自然到很多人做完这一步就宣布“这是真太阳时”。再加上均时差EoT最大也就正负16分钟左右远不如经度差动辄一两个小时来得震撼于是“经度修正 真太阳时”的印象越扎越深。很多老玩家从没想过还要再查一次均时差更别说不少排盘软件的底层就没有EoT这个参数。结果就是地方平太阳时顶着真太阳时的名字成了行业默认。这里我先把结论撂下严格的天文概念里经度修正后的时间应当叫“地方平太阳时”真正的真太阳时还要再叠一层均时差修正。2. 日晷的倔强一个太阳日本来就不是固定的24小时2.1 恒星日与太阳日每天多出的3分56秒从哪来要理解真太阳时为什么“不听话”得先回答一个基础问题地球自转一圈明明只需要23小时56分04秒为什么我们的一天却定为24小时这多出来的3分56秒是给太阳补的。地球自转一圈对应的是遥远恒星背景回到原位这叫恒星日。但地球同时还在绕着太阳公转一天大约在轨道上跑1度。于是昨天中午12点太阳正南今天地球自转回到同样的恒星背景方位时太阳已经相对恒星背景向东挪了约1度地球还得再补转这1度太阳才会再次正南。补这1度大约需要3分56秒。所以平太阳日24小时 恒星日 约3分56秒。如果地球公转速度完全恒定、地轴又不倾斜那么“每天补3分56秒”就是一笔固定账一天永远是24小时真太阳时和平太阳时也就永远不会分家。可惜地球没这么省心。2.2 地球的两笔“坏账”椭圆轨道和倾斜地轴第一笔坏账来自轨道形状。地球绕太阳的轨道不是正圆而是椭圆偏心率约0.0167。1月初地球跑过近日点公转速度最快7月初过远日点公转速度最慢。太阳在黄道上的视运动速度随之一年快一年慢太阳日的长度也就跟着忽长忽短。这一项单独能贡献约正负8分钟的日期性偏差。第二笔坏账来自地轴倾斜。地轴不是垂直于公转轨道面的而是倾斜约23.4度。我们常说太阳在黄道上运行但地球自转计时的依据是赤经。黄道上的匀速角速度投影到赤经上并不匀速就像一个人在一个倾斜跑道上跑步从侧面看速度均匀但从跑道正上方的投影坐标看时快时慢。这一项单独贡献约正负10分钟且周期是半年。两笔坏账叠加才搓出了全年最大值约16.4分钟11月初和-14.2分钟2月中旬的均时差曲线。日晷比钟表快也好、慢也好都是这两笔账在背后作祟。2.3 钟表为什么不敢按真太阳时走假设有人做一只“真太阳时手表”戴在手上会是什么体验2月中旬它比普通手表慢将近14分钟到了11月初又比普通手表快16分钟而且每天的快慢变化还在波动。对日常生活来说这种时间让人没法安排任何约定。对航海导航来说它更是灾难——定位经度需要的是稳定均匀的时间基准。所以钟表时代彻底倒向了平太阳时虚构一个“平均太阳”让一年里每个平均太阳日都严格等于24小时。钟表走的是均匀时间而太阳走的是不均匀时间两套时间的差额就是均时差。这里有个很反直觉的点在钟表时代想得到“真太阳时”反而要先查表、算公式、加修正。真正的真太阳时不再是一个可以直接读出来的日晷读数而是一个需要靠计算去逼近的仿真时间。所以“真太阳时不是真太阳时”这句话还有第二层意思连那个“真的真太阳时”在钟表世界里也是被推演出来的“假货”。3. 均时差那张全年±16分钟的诚实账单3.1 均时差是“视太阳时-平太阳时”不是玄学均时差Equation of Time简称EoT的正式定义一句话均时差 视太阳时 - 平太阳时。它衡量的是“真实太阳”和“平均太阳”在一年里逐渐累积出来的差值。当均时差为正说明日晷读数比平太阳时“快”。典型例子就是11月初太阳已经跑到当地子午线偏西日晷眼看就要指到12点钟表却才走到11点44分左右。当均时差为负说明日晷比钟表“慢”。比如2月中旬钟表已经12点14分了日晷的影子还在正午前一点点。正负方向这件事我必须多说一句。我见过不少人做完经度修正以后把EoT的符号加反了本该减的加了上去16分钟误差一下变成32分钟。所以看到任何工具里出现“16分钟”这种参数时先问清楚它用的是哪个方向的定义视太阳时减平太阳时还是平太阳时减视太阳时。对应到现实世界记住两个锚点11月初日晷比钟表快2月中旬日晷比钟表慢。3.2 全年EoT速查表贴在书桌前都不亏下面是全年几个关键时间点上的均时差近似值单位分钟。我做了好几年日晷对表这张表对我的价值比很多复杂公式都大。日期约均时差EoT分钟直观感觉1月1日-3日晷略慢1月20日-11日晷明显慢2月11日-14全年最负日晷最慢3月中旬-8慢4月15日0日晷与钟表完全相等5月中旬3略快6月中旬0完全相等7月下旬-6慢9月1日0完全相等9月中下旬5快10月中旬14快11月3日16全年最正日晷最快12月25日0完全相等注意这些是典型日期的近似值每天之间是连续变化的不会从14一步跳到0。另一个要点均时差只取决于日期跟你在哪个经度、哪个时区没有任何关系。全球同一天的EoT是同一个数值所以你不需要先定位直接查表就能用。3.3 一个足够手工使用的近似公式如果觉得查表不够细可以用下面这个近似公式误差通常在1分钟以内EoT ≈ 9.87 × sin(2B) - 7.53 × cos(B) - 1.5 × sin(B) 单位分钟 B 2π × (N - 81) / 365这里的N是日序1月1日为112月31日为365。公式内部其实就对应前面说的两笔坏账9.87乘以sin(2B)那一项是黄赤交角分量周期半年后面的-7.53×cos(B) - 1.5×sin(B)合起来是轨道偏心率分量周期一年。拿11月3日举例N307代入算出来约16.4分钟和天文年历上的真实值对得上。拿2月11日举例N42算出来约-14.6分钟也很接近。我一般不会用这个公式手算每一天但拿它验证几个特殊日期、判断手里的工具到底靠不靠谱非常够用。4. 从北京时间到真·真太阳时两步修正的完整账本4.1 两步修正法一步都不能省从北京时间换算到真正的地方视太阳时流程其实只有两步第一步经度修正把时区钟表时间换算到当地经度上的地方平太阳时地方平太阳时 北京时间 -120° - 当地经度× 4分钟这里注意符号当地经度在120°以东括号内为负实际效果是加时间在120°以西括号内为正实际效果是减时间。为什么是4分钟因为地球每小时自转15度也就是每度4分钟。第二步叠加上均时差当地视太阳时真太阳时 地方平太阳时 EoT两步都做完得到的才是真正意义上的视太阳时。只做第一步得到的是“假真太阳时”第一步不做得到的是时区钟表时间本身两步都做但EoT符号搞反得到的是精确的错误。4.2 同一天、同一钟表时刻三座城市的真太阳时差别假设2025年11月3日北京时间14:00整当天的EoT大约16.4分钟。我们看三个地方城市经度约经度修正地方平太阳时真太阳时与北京钟表差北京116.4°E-14.4分钟13:45:3614:02:002分00秒哈尔滨126.6°E26.4分钟14:26:2414:42:4842分48秒乌鲁木齐87.6°E-129.6分钟11:50:2412:06:48-1小时53分12秒这张表说明三件事。第一哈尔滨在东经120°以东同一时刻它的地方平太阳时已经过了14:26真正的视太阳时更是逼近14:43。第二北京虽然顶着“北京时间”的名字但它的地方平太阳时反而比北京时间慢14分24秒加上EoT以后只比钟表快2分钟。第三乌鲁木齐的钟表虽然显示14:00但当地日晷才刚过正午6分钟换算成视太阳时只有12:07。很多时候你感觉“修正量不大”是因为你恰好站在东经120°附近。一旦往西走经度修正动辄一两个小时“真假真太阳时”就不是精度问题了而是方向问题。4.3 零计算傻瓜法用“太阳正午”反推真太阳时如果你不想碰任何公式还有个更省事的办法很多天气App、天文软件都会直接给出当天当地的“太阳正午”时刻。所谓太阳正午就是当地真太阳时12:00对应的钟表时间。有了这个数值反推公式特别直白真太阳时 当前北京时间 -太阳正午时刻 - 12:00举个例子。某App显示当地当天太阳正午是北京时间13:02现在钟表走到14:30。那么真太阳时 14:30 - (13:02 - 12:00) 14:30 - 1小时02分 13:28。你甚至不需要知道当地经度是多少也不需要查EoT两步修正的结果全被这个“太阳正午”打包好了。这个方法特别适合快速验证先在App里查到今天的太阳正午再对表算出真太阳时拿它跟某个工具输出的“真太阳时”对比。偏差一两分钟以内属于正常超过五分钟基本可以断定工具有问题。4.4 最容易踩的两个坑第一个坑只做经度修正就标注“真太阳时”这是市面上90%的情况。判断方法很简单——如果你发现某个工具输出的“真太阳时”等于“北京时间 一个固定值”而且这个固定值一年四季都不变那它绝对没做均时差。真正的真太阳时和钟表的差值会随日期平滑波动全年呈现一条S形曲线。第二个坑EoT符号搞反。有的工具脚本里用的是“平太阳时 - 视太阳时”的相反约定输出正负号和天文年历正好颠倒。最稳妥的验证锚点还是那两句11月3日附近日晷比钟表快2月11日附近日晷比钟表慢。记住这两条任何符号错误都会当场露馅。5. “假真太阳时”什么时候会坏事时辰边界与正午对表5.1 时辰边界16分钟足以改变归类这一节讨论的前提是传统干支计时以日晷时间为准的古法设定。我先把话说在前面这里只聊技术细节不评价这个体系本身的对错。但只要你接受“古人计时 日晷”这个前提那换算成现代时间时就必须用真正的视太阳时。假设某地就在东经120°上地方平太阳时和北京时间几乎没差。当地一个人出生在20:50按平太阳时是戌时末尾。但如果出生在11月3日当天EoT约16分钟真正的视太阳时已经到21:06按日晷时间就落进亥时头了。也就是说在经度修正为零的城市单单一个均时差就可能把一个边界时刻的时辰归类改写。东部地区经度修正一般在0到20分钟之间EoT再加±16分钟合计最多约36分钟。所以出生时间如果离时辰边界在40分钟以内“假真太阳时”就可能给出和“真视太阳时”完全不同的结果。中西部地区更夸张东经87°左右的城市经度修正已经达到2小时10分同样一个北京时间在平太阳时体系里可能还是午时末在真太阳时体系里已经进了未时而直接用北京时间排则申时都过了一半。三套系统三个时辰。5.2 日晷爱好者和户外实践正午对表是刚需如果你自己做过日晷一定遇到过这个场景明明按道理影子正北就是当地正午但把日晷读数跟手机一对比发现差了十几分钟甚至一两个小时。很多人第一反应是晷针装歪了或者晷面刻度画错了。其实大概率是没处理经度和均时差。日晷显示的是真太阳时手机显示的是时区平太阳时。两者之间隔着经度修正和均时差两道账。所以日晷校准的正确顺序是先用手机查到当地当天的太阳正午把日晷对准这个时刻再去刻刻度。户外摄影里所谓的黄金时刻本质上也由太阳高度角决定等于真太阳时坐标。用“假真太阳时”去规划拍摄日出日落前后的时间可能错开16分钟刚好错过最暖的那段光线。5.3 流派之争北京时间、平太阳时还是视太阳时圈子里常见的做法有三类。第一类叫“北京时间派”直接用钟表时间排盘在东部地区因为经度修正不大效果上还能接受第二类叫“地方平太阳时派”做经度修正也就是很多软件默认的“假真太阳时”第三类叫“视太阳时派”经度加均时差两步都做力求复现古代日晷读数。这三套体系没有绝对对错因为选择哪套标准取决于你跟随的传承规则。但真正让人头疼的是名不副实工具标签写着“真太阳时”实际跑的是第二类地方平太阳时。你以为是按古法日晷在算其实用的还是钟表。所以我一直建议不管用哪个体系先确认工具到底做了几步修正。这一步搞清楚了至少不会在结果里混进一个你自己都没意识到的“真”。6. 验证你手里的真太阳时四招排查法6.1 第一招看修正量是否随日期变化把某个工具的“真太阳时”输出连续观察几个月。如果同城修正量始终是同一个固定值只有经度项没有任何随日期变化的成分那基本可以断定它没做均时差。真正的真太阳时修正量应该呈现一条平滑的年度曲线年初偏慢2月中到谷底年中回零下半年转快11月初到峰值年底再回零。6.2 第二招用两个极值日期对表全年最值得记住的两个日期一个是2月11日前后EoT约-14分钟另一个是11月3日前后EoT约16分钟。这两个极端日期最适合做验证找一个能显示视太阳时的天文软件或者干脆看日晷对比一下工具的“真太阳时”是跟视太阳时吻合还是跟地方平太阳时吻合。如果工具在这两天给出的结果都和日晷对不上说明它输出的只是“经度修正平太阳时”而已。6.3 第三招用太阳正午做交叉验证按第4.3节的方法从天气App或天文软件查到当天的太阳正午反推出当前的真太阳时再和工具输出对比。这一步几乎零成本因为手机天气里通常都带日出日落和太阳正午数据。偏差在1到2分钟内都算正常超过5分钟基本可以判定工具不合格。6.4 第四招看EoT归零日期一年里有四个时间点EoT接近0大约是4月中旬、6月中旬、9月初和12月下旬。在这些日子里经度修正后的地方平太阳时应当刚好等于真太阳时。如果一个工具在这几天还会额外加减十几分钟那多半是把某个修正项重复计了或者公式本身就写错了。这个归零特征非常容易被自动化测试和手工验证抓到算是我最常用的一招。我在实际对表里最常用的不是公式而是第三招随手打开一个太阳工具查正午然后立刻估出当地真太阳时和钟表的差值。你如果也想验证手里的某个“真太阳时”我的建议也是先别急着算公式记住11月初和2月中旬这两个极值再找日晷或天文软件对比一次真假立现。最后说个心得真太阳时不是不能算也不是玄学它只是被太多半吊子教程和工具披上了一层概念套概念的外衣。把“经度修正”和“均时差修正”这两步彻底拆开所有混乱都会瞬间清爽。