Cách dễ dàng để có được thời gian nguyên tử quốc tế trên linux?


12

Hệ thống của tôi sử dụng UTC cho đồng hồ hệ thống, điều mà tôi không cảm thấy đặc biệt muốn thay đổi. Có một cách dễ dàng để có được thời gian TAI hiện tại? (tốt nhất là một công cụ dòng lệnh hoặc cờ)


2
Bạn có muốn nhận được sự khác biệt giữa UTC và TAI cho mục đích thông tin (ví dụ: 12:30:13 UTC và 12:30:45 TAI) hoặc bạn muốn đặt lại đồng hồ từ nguồn bên ngoài để bù cho sự khác biệt tích lũy trên hệ thống địa phương của bạn?
Sven

1
Hiện tại chỉ cho mục đích thông tin. Và trong trường hợp tôi muốn sử dụng nó trong lập trình, vì TAI, không giống như UTC, luôn tăng đơn điệu
JanKanis

Câu trả lời:


9

Có nhiều công việc đang tiến hành để cung cấp hỗ trợ riêng cho Linux cho TAI. Cho đến lúc đó, bạn có thể sử dụng lược đồ-đồng hồ để chuyển đổi sang TAI.


Hmm, vì vậy hiện tại không có bất kỳ hỗ trợ dễ dàng nào, nhưng hỗ trợ kernel đang đến và sau đó chúng ta chỉ cần chờ các tiện ích người dùng hỗ trợ tùy chọn CLOCK_TAI.
JanKanis

2

Câu trả lời với múi giờ "đúng /" là không chính xác. Nó có nghĩa là để chuyển đổi từ đồng hồ hệ thống được giữ trong TAI - 10s sang UTC. Do đó, phần sau đây cho thời gian chính xác trong UTC, GPS, LOREN và 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'

Các múi giờ phù hợp có thể ở một vị trí khác, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Thay thế "ngay bây giờ" bằng ngày / giờ bạn muốn chuyển đổi - đầu ra là chính xác cho mỗi ngày sau 1/1/1980.

Đầu ra:

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.htmlm


Quả thực bạn đúng về câu trả lời của tôi. Như bạn có thể thấy từ ví dụ được sao chép, năm 2013 nó đã từng hoạt động. Tuy nhiên, hôm nay năm 2017 tôi có 10 giây khác biệt giữa TAI và TZ='right/UTC' datein ấn là gì .
Huygens

XIN LƯU Ý: UTC được điều chỉnh theo GPS và TAI khi cập nhật giây. TAI (Temps Atomique International, là thang thời gian nguyên tử quốc tế dựa trên việc đếm liên tục SI giây). Năm 2019 TAI đi trước UTC thêm 37 giây. TAI luôn đi trước GPS 19 giây. Bất kỳ hệ thống nào sử dụng điều này phải được cập nhật, để cập nhật "../leaps/UTC".
KevinM

1

Câu trả lời không được chấp nhận : xem /server//a/812163/67419

Bạn có thể sử dụng múi giờ "phải /" để hiển thị xấp xỉ (<1s) của TAI.

Nhưng bạn cần đảm bảo rằng gói múi giờ của bạn được cập nhật (ví dụ: tzdata trên Ubuntu).

Mã số:

TZ='right/UTC' date

Thí dụ:

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

Lý do khấu hao: từ năm 2013 đến hôm nay, múi giờ "đúng / UTC" tương ứng với TAI - 10 giây và không phải TAI. Hoặc có một lỗi.


-1

Thật dễ dàng để làm: chỉ cần chạy /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc một lần hoặc thêm nó vào cron. Tôi có nó được thiết lập hàng ngày.


1
Tốt hơn nên sử dụng một cái gì đó như pool.ntp.orgthay vì một địa chỉ IP cố định để cân bằng dịch vụ tốt hơn.
Sven

4
các tác giả của ntpdate cũng coi đó là không rõ ràng, lỗi thời và không được chấp nhận. Mọi người được khuyến khích sử dụng ntpd và ntp-Wait thay thế. Sẽ tốt hơn nếu chỉ có đồng hồ của bạn luôn luôn chính xác hơn là nó đột nhiên nhảy đến thời gian chính xác theo định kỳ.
hầm

4
Tôi nghĩ NTP phát hành thời gian UTC, không phải thời gian TAI mà tôi đặc biệt yêu cầu.
JanKanis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.