正如标题所述,我需要在2004年1月1日00:00:00(Java)中找到TAI 秒的数量。我刚刚了解到TAI是什么,我试图解决上述问题让我有些困惑。
我尝试过的事情:
我知道在Java中你可以使用System.currentTimeMillis()
来获得1970年1月1日UTC(Javadocs)以来的毫秒数。
此外,根据我对原子时间的简短研究,我了解到目前TAI正好比UTC早37秒( 因此,我的思考过程是: 我不确定这里的数学(1天= 86400秒): 此时我开始质疑与UTC相比,添加到TAI的37闰秒是否会占据闰年,因此我应该使用选项2 。不幸的是,我不确定我的思维过程是否正确,我认为最好在这里要求确定。 此外,我发现this cite声称 1,072,915,200 (秒)相当于 01/01/2004 @ 12:00 am(UTC)。哪种情况让我失望,因为它不等于我的任何一项计算。
答案 0 :(得分:0)
Tai-seconds基本上是原子SI秒,包括闰秒。我的图书馆Time4J支持此功能。有关TAI支持的更多详细信息,请参阅类Moment
的{{3}}:
Moment m2004 = PlainTimestamp.of(2004, 1, 1, 0, 0).atUTC();
Moment now = SystemClock.currentMoment(); // other clocks based on NTP are possible
long seconds = SI.SECONDS.between(m2004, now);
System.out.println(seconds); // 425222084L
System.out.println(now); // 2017-06-22T13:15:24,570000000Z