Cara mudah untuk mendapatkan Waktu Atom Internasional di linux?

12

Sistem saya menggunakan UTC untuk jam sistem, yang menurut saya tidak ingin diubah. Apakah ada cara mudah untuk mendapatkan waktu TAI saat ini? (lebih disukai alat baris perintah atau bendera)

JanKanis
sumber
2
Apakah Anda ingin mendapatkan perbedaan antara UTC dan TAI untuk tujuan informasi (mis. 12:30:13 UTC dan 12:30:45 TAI) atau Anda ingin mengatur ulang jam dari sumber eksternal untuk menebus akumulasi perbedaan pada sistem lokal Anda?
Sven
1
Saat ini hanya untuk tujuan informasi. Dan jika saya ingin menggunakannya dalam pemrograman, karena TAI, tidak seperti UTC, selalu meningkat secara monoton
JanKanis

Jawaban:

9

Ada pekerjaan yang sedang berlangsung untuk memberikan dukungan asli Linux untuk TAI. Sampai saat itu, Anda dapat menggunakan skema-jam untuk mengkonversi ke TAI.

David Schwartz
sumber
Hmm, jadi saat ini tidak ada dukungan yang mudah, tetapi dukungan kernel akan datang dan kami hanya perlu menunggu utilitas userland untuk mendukung opsi CLOCK_TAI.
JanKanis
2

Jawaban dengan zona waktu "benar /" salah. Ini dimaksudkan untuk mengkonversi dari jam sistem yang disimpan di TAI - 10 ke UTC. Dengan demikian, yang berikut ini memberikan waktu yang tepat dalam UTC, GPS, LOREN dan 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'

Zona waktu yang tepat mungkin berada di lokasi yang berbeda, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Ganti "sekarang" dengan tanggal / waktu yang ingin Anda ubah - hasilnya benar untuk setiap tanggal setelah 1/1/1980.

Keluaran:

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

[1] http://www.leapsecond.com/java/gpsclock.htm

bob
sumber
Memang Anda benar tentang jawaban saya. Seperti yang Anda lihat dari contoh yang disalin, pada tahun 2013 itu digunakan untuk bekerja. Namun, hari ini di 2017 saya memiliki perbedaan 10 detik antara TAI dan apa TZ='right/UTC' dateyang dicetak.
Huygens
HARAP DICATAT: UTC disesuaikan sehubungan dengan GPS dan TAI saat lompatan detik diperbarui. TAI (Temps Atomique International, adalah skala waktu atom internasional berdasarkan penghitungan terus-menerus dari SI kedua). Pada 2019 TAI lebih unggul dari UTC dengan 37 detik. TAI selalu unggul GPS dalam 19 detik. Sistem apa pun yang menggunakan ini harus diperbarui, agar tetap "../leaps/UTC" tetap mutakhir.
KevinM
1

Jawabannya sudah usang : lihat /server//a/812163/67419

Anda bisa menggunakan zona waktu "kanan /" untuk menampilkan perkiraan (<1s) dari TAI.

Tetapi Anda perlu memastikan bahwa paket zona waktu Anda terbaru (mis. Tzdata di Ubuntu).

Kode:

TZ='right/UTC' date

Contoh:

$ date -u ; TZ='right/UTC' date
Mon Sep 16 13:36:21 UTC 2013
Mon Sep 16 13:35:56 UTC 2013

Alasan depresiasi: antara 2013 dan hari ini, zona "kanan / UTC" sesuai dengan TAI - 10 detik dan bukan TAI. Atau ada bug.

Huygens
sumber
-1

Ini mudah dilakukan: jalankan /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc sekali atau tambahkan ke cron. Saya mengaturnya setiap hari.

DSkowronski
sumber
1
Lebih baik menggunakan sesuatu seperti pool.ntp.orgdaripada alamat IP tetap untuk memuat keseimbangan layanan dengan lebih baik.
Sven
4
juga penulis label ntpdate itu sebagai unmaintained, usang, dan usang. Orang-orang didorong untuk menggunakan ntpd dan ntp-tunggu saja. Lebih baik hanya memiliki jam Anda selalu benar daripada tiba-tiba melompat ke waktu yang benar secara berkala.
rebus
4
Saya pikir NTP mengeluarkan waktu UTC, bukan waktu TAI yang saya minta secara spesifik.
JanKanis