Einfache Möglichkeit, die Internationale Atomzeit unter Linux zu bekommen?
12
Mein System verwendet UTC für die Systemuhr, die ich nicht unbedingt ändern möchte. Gibt es eine einfache Möglichkeit, die aktuelle TAI-Zeit zu ermitteln? (vorzugsweise ein Befehlszeilentool oder ein Flag)
Möchten Sie die Differenz zwischen UTC und TAI zu Informationszwecken ermitteln (z. B. ist es 12:30:13 UTC und 12:30:45 TAI) oder möchten Sie die Uhr von einer externen Quelle zurücksetzen, um akkumulierte Differenzen auf auszugleichen Ihr lokales System?
Sven
1
Im Moment nur zu Informationszwecken. Und falls ich es jemals in der Programmierung verwenden möchte, da TAI im Gegensatz zu UTC immer monoton ansteigt
JanKanis
Antworten:
9
Derzeit wird daran gearbeitet , Linux native Unterstützung für TAI zu bieten. Bis dahin können Sie Schema-Clock verwenden , um in TAI zu konvertieren.
Hmm, es gibt derzeit also keine einfache Unterstützung, aber die Kernel-Unterstützung kommt und dann müssen wir nur auf Userland-Dienstprogramme warten, um die CLOCK_TAI-Option zu unterstützen.
JanKanis
2
Die Antwort mit der "richtigen /" Zeitzone ist falsch. Es ist für die Konvertierung von einer in TAI - 10s gespeicherten Systemuhr nach UTC vorgesehen. Das Folgende gibt also die korrekte Zeit in UTC, GPS, LOREN und TAI an [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'
Die richtigen Zeitzonen befinden sich möglicherweise an einem anderen Ort, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Ersetzen Sie "jetzt" durch das Datum / die Uhrzeit, die Sie transformieren möchten - die Ausgabe ist für jedes Datum nach dem 1.1.1980 korrekt.
Ausgabe:
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
In der Tat sind Sie in Bezug auf meine Antwort richtig. Wie Sie dem kopierten Beispiel entnehmen können, hat es 2013 funktioniert. Heute im Jahr 2017 habe ich jedoch 10 Sekunden Unterschied zwischen TAI und dem, was TZ='right/UTC' dategedruckt wird.
Huygens
BITTE BEACHTEN SIE: Die UTC wird in Bezug auf GPS und TAI angepasst, wenn Schaltsekunden aktualisiert werden. TAI (Temps Atomique International) ist die internationale Atomzeitskala, die auf einer kontinuierlichen Zählung der SI-Sekunde basiert. Im Jahr 2019 liegt TAI 37 Sekunden vor UTC. TAI ist dem GPS immer um 19 Sekunden voraus. Jedes System, das dies verwendet, muss aktualisiert werden, um "../leaps/UTC" auf dem neuesten Stand zu halten.
Es ist ganz einfach: einfach /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc
einmal ausführen
oder zu cron hinzufügen. Ich habe es täglich eingestellt.
Verwenden Sie pool.ntp.orgstatt einer festen IP-Adresse lieber so etwas wie , um den Dienst besser auszubalancieren.
Sven
4
Auch die Autoren von ntpdate bezeichnen es als nicht gewartet, veraltet und veraltet. Die Leute werden ermutigt, stattdessen ntpd und ntp-wait zu verwenden. Es ist besser, wenn Ihre Uhr immer richtig ist, als wenn sie plötzlich in regelmäßigen Abständen zur richtigen Zeit springt.
Eintopf
4
Ich denke, NTP gibt die UTC-Zeit aus, nicht die TAI-Zeit, nach der ich speziell gefragt habe.
Antworten:
Derzeit wird daran gearbeitet , Linux native Unterstützung für TAI zu bieten. Bis dahin können Sie Schema-Clock verwenden , um in TAI zu konvertieren.
quelle
Die Antwort mit der "richtigen /" Zeitzone ist falsch. Es ist für die Konvertierung von einer in TAI - 10s gespeicherten Systemuhr nach UTC vorgesehen. Das Folgende gibt also die korrekte Zeit in UTC, GPS, LOREN und TAI an [1]:
Die richtigen Zeitzonen befinden sich möglicherweise an einem anderen Ort, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Ersetzen Sie "jetzt" durch das Datum / die Uhrzeit, die Sie transformieren möchten - die Ausgabe ist für jedes Datum nach dem 1.1.1980 korrekt.
Ausgabe:
[1] http://www.leapsecond.com/java/gpsclock.htm
quelle
TZ='right/UTC' date
gedruckt wird.Antwort ist veraltet : siehe /server//a/812163/67419
Sie können die Zeitzone "rechts /" verwenden, um eine Annäherung (<1s) des TAI anzuzeigen.
Sie müssen jedoch sicherstellen, dass Ihr Zeitzonenpaket auf dem neuesten Stand ist (z. B. tzdata unter Ubuntu).
Code:
Beispiel:
Abwertungsgrund: Zwischen 2013 und heute entspricht die Zeitzone "rechts / UTC" TAI - 10 Sekunden und nicht TAI. Oder es gab einen Fehler.
quelle
Es ist ganz einfach: einfach
/usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc
einmal ausführen oder zu cron hinzufügen. Ich habe es täglich eingestellt.quelle
pool.ntp.org
statt einer festen IP-Adresse lieber so etwas wie , um den Dienst besser auszubalancieren.