【发布时间】:2014-10-31 11:29:05
【问题描述】:
我一直试图弄清楚如何将生日 (DateTime) 转换为天文“精确”的 DateTime 值。时区:UTC+1。
示例:
我的朋友出生于 1984-01-27 11:35
1984 年是闰年。但 1700、1800 和 1900 年不是闰年。因此,直到 2000 年 2 月 29 日,我们在天文精确时间上都落后了。 1984 年,我们“几乎”落后了一天。所以天文学上的准确时间应该是在我朋友出生的官方日期时间之后,对吧?
这些是我所知道的公历调整:
- 一年有365天
- 每第 4 年为闰年(= 有 366 天而不是 365 天)
- 每 100 年不是闰年
- 每 400 年为闰年(尽管之前的规则)
- 在 2 月底添加额外的一天(闰年 2 月有 29 天)
从天文上看,一年有 365,2422 天。 这意味着一天有 24,0159254794 小时。 官方时间和天文时间“完全相同”的时间值应该是 2000-03-01T00:00:00,对吧?
因此,我们需要弄清楚在给定的官方时间,官方时间和天文精确时间之间的差异有多大。
我已经考虑了好几个小时,直到我的头开始疼。我想我会和你分享我的头痛。也许你们知道任何可以计算这个的时间库?
【问题讨论】:
-
这不仅仅是恒星年的长度。您的问题似乎是将UTC转换为“平均太阳时”(UT1)甚至“视太阳时”。后者需要“时间等式”(谷歌会帮助你)。对于第一个(UTC => UT1),您需要根据 IERS 发布的观测数据或基于近似公式(Jean Meeus 等人)了解 delta-T 关系。所以解决方案比你想象的要复杂得多。至少您还需要地理坐标,而不仅仅是天文计算不精确的时区。
-
“天文一年有 365,2422 天。这意味着一天有 24,0159254794 小时”,好吧,这不是真的。年和日是独立的概念。 (朔望)日与地球围绕其自身轴的自转有关,而年与地球围绕太阳公转有关。两种不同的动作。但是你当然可以用天作为时间单位来衡量一年的长度。
-
感谢您的 cmets。我在下面发布了一个简单的“解决方案”。你怎么看?