正如标题所述,我需要找到自 2004 年 1 月 1 日 00:00:00 UTC 以来的TAI 秒数(在 Java 中)。我最近才知道 TAI 是什么,而我尝试解决上述问题让我有点困惑。
我试过的:
我知道在 Java 中,您可以使用System.currentTimeMillis()
自 1970 年 1 月 1 日 UTC ( Javadocs ) 以来的毫秒数。
此外,从我对原子时间的简短研究中,我了解到目前 TAI 正好比 UTC 早 37(闰)秒。
因此,我的思考过程是:
- 求 1970 年到 2004 年(34 年)之间的秒数
- 从当前 UTC 时间中减去它,得到自 2004 年以来的数量
- 加 37 得到 TAI 中的实际秒数
我不确定这里的数学(1 天 = 86400 秒):
- 选项 1:86400(秒)x 365.25(天(1 儒略年))x 34(年)= 1,072,958,400
- 选项 2:86400(秒)x 365(天(1 个共同年份))x 34(年)= 1,072,224,000
在这一点上,我开始质疑添加到 TAI 的 37 闰秒与 UTC 相比是否要考虑闰年,因此我应该使用Option 2。不幸的是,我不确定我的思维过程是否正确,我认为最好在这里问一下。
此外,我发现这个引用声称1,072,915,200(秒)相当于01/01/2004 @ 12:00am (UTC)。哪种让我失望,因为它不等于我的任何一个计算。