Clase tai_clock
Este reloj informa de la hora atómica internacional desde las 00:00:00 del jueves, 1 de enero de 1958. Este reloj no tiene en cuenta los segundos intercalares.
Sintaxis
class tai_clock; // C++20
Comentarios
Este reloj informa del tiempo atómico internacional (TAI, del francés temps atomique international). El tiempo atómico internacional utiliza un promedio ponderado de muchos relojes atómicos para realizar un seguimiento del tiempo.
El tiempo mantenido por el reloj TAI es diferente de la hora UTC. La diferencia es que ocasionalmente se agrega un segundo intercalar a la hora UTC para mantener la diferencia entre la hora UTC y la UT1 (tiempo solar) dentro de +- 0,9 segundos entre sí. Se acumula gradualmente una discrepancia entre el tiempo registrado por un reloj atómico y el tiempo registrado mediante la medición de la rotación de la tierra. La discrepancia se acumula porque la velocidad de rotación de la tierra es irregular. Se ralentiza a lo largo del tiempo en aproximadamente un segundo cada 1,5 años, pero también se acelera algunas veces. El TAI no realiza un seguimiento de esta discrepancia. Al escribir esto, la hora TAI va 37 segundos por delante de la hora UTC. Esto se debe a una diferencia inicial de 10 segundos al inicio de 1972, además de los segundos intercalares que se han insertado desde 1972.
La época del reloj, o la fecha y hora desde las que comienza a medir la hora, es 1958-01-01 00:00:00
.
Miembros
Nombre | Descripción |
---|---|
from_utc |
Estática. Convierte utc_time en tai_time . |
now |
Estática. Devuelve la hora atómica internacional actual. |
to_utc |
Estática. Convierte tai_time a utc_time . |
No miembros
Nombre | Descripción |
---|---|
from_stream |
Analiza un tai_clock desde la secuencia especificada con el formato indicado. |
get_leap_second_info |
Obtenga información sobre si el tiempo proporcionado especifica una hora en la que se insertó un segundo intercalar y la suma de todos los segundos intercalares entre el 1 de enero de 1970 y la duración especificada. |
operator<< |
Genera un elemento tai_time en la secuencia especificada. |
Alias de tipo de conveniencia
Nombre | Descripción |
---|---|
tai_clock::duration |
En la implementación de Microsoft es un sinónimo de duration<long long, ratio<1, 10'000'000> . Representa una duración de tiempo medida en unidades de 100 nanosegundos. |
tai_clock::period |
En la implementación de Microsoft es un sinónimo de ratio<1, 10'000'000> . Representa el tiempo en segundos (100 nanosegundos) entre cada tic de la duración. |
tai_clock::rep |
Un sinónimo del tipo (long long ) usado para representar las unidades integrales de este reloj tai_clock::duration . |
tai_clock::time_point |
Sinónimo de time_point<tai_clock> . Se usa para representar un time_point para este reloj. |
Relacionados
Nombre | Descripción |
---|---|
tai_time |
Sinónimo de template <class Duration> using tai_time = time_point<tai_clock, Duration> . Representa un time_point para un tai_clock . Especifique Duration . Definido en std::chrono |
tai_seconds |
Un sinónimo de using tai_seconds = tai_time<seconds> Un recuento de segundos, representado por un time_point que está asociado con un tai_clock . Definido en std::chrono |
Constantes públicas
Nombre | Descripción |
---|---|
tai_clock::is_steady constant |
Indica si el tipo de reloj es constante. Su valor es false . |
Requisitos
Encabezado: <chrono>
(desde C++20)
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
from_utc
Método estático que convierte un utc_time
en un tai_time
.
template <class Duration>
static tai_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;
Parámetros
t
Objeto utc_time
que se va a convertir.
Valor devuelto
Un tai_time
que representa el equivalente utc_time
como t
. Se calcula tomando el tiempo desde la época del reloj UTC y agregando 378691210s
donde 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s
to_utc
Método estático que convierte un tai_time
en un utc_time
.
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const tai_time<Duration>& t) noexcept;
Parámetros
t
Objeto tai_time
que se va a convertir.
Valor devuelto
Un utc_time
que representa el equivalente tai_time
como t
. Se calcula como utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s
donde 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s
is_steady
Valor estático que especifica si el tipo del reloj es constante. En la implementación de Microsoft, is_steady_constant
es false
. Dado que tai_clock
no es estable, no puede usar este reloj para tomar el tiempo antes de un evento, el tiempo después de un evento y restarlos para obtener la duración del evento, porque el reloj podría ajustarse durante ese tiempo.
static const bool is_steady = false;
now
Método estático que devuelve la hora TAI actual.
static time_point now() noexcept;
Valor devuelto
Un objeto time_point
que representa el tiempo actual. El punto de tiempo devuelto es efectivamente from_utc(utc_clock::now())
.
Consulte también
<chrono>
file_clock class
high_resolution_clock
Estructura local_t
Estructura steady_clock
Estructura system_clock
Clase utc_clock
Referencia de archivos de encabezado