web-dev-qa-db-ja.com

Linuxで国際原子時を取得する簡単な方法は?

私のシステムはシステムクロックにUTCを使用していますが、特に変更する気はありません。現在のTAI時間を取得する簡単な方法はありますか? (できればコマンドラインツールまたはフラグ)

12
JanKanis

LinuxにTAIのネイティブサポートを提供する 作業中 があります。それまでは、 scheme-clock を使用してTAIに変換できます。

9
David Schwartz

「right /」タイムゾーンの回答は正しくありません。これは、TAI-10sに保持されているシステムクロックから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"にある可能性があります。 「now」を変換する日付/時刻に置き換えます。出力は1980年1月1日以降のすべての日付に対して正しいです。

出力:

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

2
bob

回答は非推奨ですhttps://serverfault.com/a/812163/67419 を参照してください

「right /」タイムゾーンを使用して、TAIの概算(<1秒)を表示できます。

ただし、タイムゾーンパッケージが最新であることを確認する必要があります(Ubuntuのtzdataなど)。

コード:

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年から今日までのタイムゾーン「right/UTC」はTAIに対応します-10秒であり、TAIではありません。またはバグがありました。

1
Huygens