¿Manera fácil de obtener el tiempo atómico internacional en Linux?


12

Mi sistema usa UTC para el reloj del sistema, lo que no tengo muchas ganas de cambiar. ¿Hay una manera fácil de obtener el tiempo TAI actual? (preferiblemente una herramienta de línea de comando o bandera)


2
¿Desea obtener la diferencia entre UTC y TAI con fines informativos (por ejemplo, son las 12:30:13 UTC y las 12:30:45 TAI) o desea restablecer el reloj desde una fuente externa para compensar las diferencias acumuladas en su sistema local?
Sven

1
Por el momento solo con fines informativos. Y en caso de que alguna vez quiero usarlo en la programación, ya que TAI, a diferencia UTC, siempre es monótonamente creciente
JanKanis

Respuestas:


9

Hay trabajo en progreso para dar soporte nativo de Linux para TAI. Hasta entonces, puede usar el reloj de esquema para convertir a TAI.


Hmm, entonces no hay ningún soporte fácil actualmente, pero el soporte del kernel está por llegar y luego solo tenemos que esperar a que las utilidades del usuario admitan la opción CLOCK_TAI.
JanKanis

2

La respuesta con la zona horaria "correcta /" es incorrecta. Está destinado a convertir de un reloj del sistema mantenido en TAI - 10s a UTC. Por lo tanto, lo siguiente da la hora correcta en UTC, GPS, LOREN y 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'

Las zonas horarias correctas pueden estar en una ubicación diferente, TZ = "right / UTC", TZ = "../ zoneinfo-leaps / UTC". Reemplace "ahora" con la fecha / hora que desea transformar: la salida es correcta para cada fecha posterior al 1/1/1980.

Salida:

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


De hecho, tienes razón sobre mi respuesta. Como puede ver en el ejemplo copiado, en 2013 solía funcionar. Sin embargo, hoy en 2017 tengo 10 segundos de diferencia entre TAI y lo que se TZ='right/UTC' dateestá imprimiendo.
Huygens

TENGA EN CUENTA: UTC se ajusta con respecto a GPS y TAI cuando se actualizan los segundos bisiestos. TAI (Temps Atomique International, es la escala de tiempo atómica internacional basada en un conteo continuo del segundo SI). En 2019, TAI está por delante de UTC por 37 segundos. TAI siempre está por delante del GPS en 19 segundos. Cualquier sistema que use esto debe actualizarse para mantener "../leaps/UTC" actualizado.
KevinM

1

La respuesta está en desuso : consulte /server//a/812163/67419

Puede usar la zona horaria "derecha /" para mostrar una aproximación (<1s) del TAI.

Pero debe asegurarse de que su paquete de zona horaria esté actualizado (por ejemplo, tzdata en Ubuntu).

Código:

TZ='right/UTC' date

Ejemplo:

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

Motivo de la depreciación: entre 2013 y hoy, la zona horaria "derecha / UTC" corresponde a TAI - 10 segundos y no a TAI. O hubo un error.


-1

Es fácil de hacer: solo ejecuta /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc una vez o agrégalo a cron. Lo tengo configurado a diario.


1
Mejor use algo como en pool.ntp.orglugar de una dirección IP fija para equilibrar mejor la carga del servicio.
Sven

44
También los autores de ntpdate lo etiquetan como no mantenido, obsoleto y en desuso. Se alienta a las personas a usar ntpd y ntp-wait en su lugar. Es mejor tener su reloj siempre correcto que tener que saltar repentinamente a la hora correcta periódicamente.
estofado

44
Creo que NTP emite la hora UTC, no la hora TAI que solicité específicamente.
JanKanis
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.