Моя система использует UTC для системных часов, которые я не особо хочу менять. Есть ли простой способ узнать текущее время TAI? (желательно инструмент командной строки или флаг)
Моя система использует UTC для системных часов, которые я не особо хочу менять. Есть ли простой способ узнать текущее время TAI? (желательно инструмент командной строки или флаг)
Ответы:
Идет работа над тем, чтобы предоставить Linux поддержку TAI. До этого вы можете использовать схему-часы для преобразования в TAI.
Ответ с «правильным /» часовым поясом неверен. Он предназначен для преобразования системных часов, хранящихся в TAI-10, в UTC. Таким образом, следующее дает правильное время в UTC, GPS, LOREN и TAI [1]:
#!/bin/sh
echo -n "UTC: "; TZ='UTC' date
echo -n "GPS: "; TZ='UTC' date --date='TZ="../leaps/UTC" now -9 seconds'
echo -n "LORAN: "; TZ='UTC' date --date='TZ="../leaps/UTC" now'
echo -n "TAI: "; TZ='UTC' date --date='TZ="../leaps/UTC" now 10 seconds'
Правильные часовые пояса могут быть в другом месте, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Замените «сейчас» на дату / время, которое вы хотите преобразовать - выходные данные верны для каждой даты после 1 января 1980 года.
Выход:
UTC: Sun Oct 30 16:28:30 UTC 2016
GPS: Sun Oct 30 16:28:47 UTC 2016
LORAN: Sun Oct 30 16:28:56 UTC 2016
TAI: Sun Oct 30 16:29:06 UTC 2016
TZ='right/UTC' date
печатает.
Ответ устарел : см. Https://serverfault.com/a/812163/67419
Вы можете использовать часовой пояс «вправо /» для отображения приблизительного значения (<1 с) TAI.
Но вы должны убедиться, что ваш пакет с часовым поясом обновлен (например, tzdata в Ubuntu).
Код:
TZ='right/UTC' date
Пример:
$ date -u ; TZ='right/UTC' date
Mon Sep 16 13:36:21 UTC 2013
Mon Sep 16 13:35:56 UTC 2013
Причина амортизации: с 2013 года по сегодняшний день часовой пояс «вправо / UTC» соответствует TAI - 10 секунд, а не TAI. Или была ошибка.
Это легко сделать: просто запустите
/usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc
один раз или добавьте его в cron. У меня это установлено ежедневно.
pool.ntp.org
вместо фиксированного IP-адреса, чтобы лучше сбалансировать загрузку сервиса.