我的系统使用UTC作为系统时钟,我并不特别想要改变。 有一个简单的方法来获得目前的TAI时间? (最好是命令行工具或标志)
有一些工作正在进行 ,以便为TAI提供Linux原生支持。 在此之前,您可以使用计划时钟转换为TAI。
“右/”时区的答案是不正确的。 它意味着从保存在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”replace为您要转换的date/时间 – 在1/1/1980之后的每个date,输出都是正确的。
输出:
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
答案已弃用 :请参阅https://serverfault.com/a/812163/67419
您可以使用“右/”时区来显示TAI的近似值(<1s)。
但是你需要确保你的时区包是最新的(例如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年至今天,“右/ UTC”时区对应TAI – 10秒而不是TAI。 或者有一个错误。
这很容易:只需运行/usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc一次或将其添加到cron。 我已经设置为每天。