Что я пробовал:
Я знаю, что в Java вы можете использовать System.currentTimeMillis(), чтобы получить количество миллисекунд с 1 января 1970 года по всемирному координированному времени (Javadocs).< /p>
Кроме того, из моего краткого исследования атомного времени я понял, что в настоящее время TAI опережает UTC ровно на 37 (прыжковых) секунд.
Поэтому мой мыслительный процесс нужно было:
- Найти количество секунд между 1970 и 2004 годами (34 года)
- Вычесть что из текущего времени UTC, чтобы получить номер с 2004 года.
- Добавьте 37, чтобы получить фактическое количество секунд в TAI.
Я не был не уверен в математических расчетах (1 день = 86 400 секунд):
[*]Вариант 1: 86 400 (секунд) x 365,25 (дней (1 Юлианский год)) х 34 (лет) = 1 072 958 400
[*]Вариант 2: 86 400 (секунд) x 365 (дней (1 общий год)) x 34 (лет) = 1 072 224 000
< /ul>
В этот момент я начал задаваться вопросом, нужны ли 37 дополнительных секунд, добавленных к TAI, учитывать високосные годы при сравнении с UTC, поэтому мне следует использовать Вариант 2[/b]. К сожалению, я не уверен, верен ли мой мыслительный процесс, и решил, что лучше спросить здесь, чтобы убедиться.
Кроме того, я нашел эту цитату, утверждающую что 1 072 915 200 (секунд) эквивалентно 01.01.2004 в 12:00 (UTC). Это меня сбило с толку, потому что оно не соответствует ни одному из моих расчетов.
Подробнее здесь: https://stackoverflow.com/questions/420 ... 04-in-java