Compartir a través de


Clase file_clock

Este reloj puede representar el rango y la resolución de los valores de tiempo de archivo usados en el sistema de archivos.

Sintaxis

using file_clock = std::filesystem::_File_time_clock; // C++20

Comentarios

En la implementación de Microsoft, el tiempo, o la hora desde la que file_clock comienza a medir el tiempo, es 1/1/1601 00:00:00.

El estándar ISO C++ proporciona una opción entre to_sys() y from_sys(), o to_utc() y from_utc(). La implementación de Microsoft eligió to_utc y from_utc.

Miembros

Nombre Descripción
from_utc Estática. Convierte utc_time en file_time.
now Estática. Devuelve la hora atómica internacional actual.
to_utc Estática. Convierte file_time a utc_time.

No miembros

Nombre Descripción
from_stream Analiza un file_clock desde la secuencia especificada con el formato indicado.
operator<< Devuelve file_time a la secuencia especificada.

Alias de tipo de conveniencia

Nombre Descripción
file_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.
file_clock::time_point Sinónimo de time_point<File_time_clock>. Se usa para representar un time_point para este reloj.
file_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.
file_clock::rep Un sinónimo del tipo (long long) usado para representar las unidades integrales de este reloj file_clock::duration.

Relacionados

Nombre Descripción
file_time Sinónimo de time_point<file_clock, Duration>. Representa un time_point para un file_clock. Especifique Duration. Definido en std::chrono

Constantes públicas

Nombre Descripción
file_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 file_time.

template <class Duration>
static file_time<common_type_t<_Duration, chrono::seconds>>
from_utc(const utc_time<Duration>& t);

Parámetros

t
Objeto utc_time que se va a convertir.

Valor devuelto

Un file_time que representa el equivalente utc_time como t. Se calcula como utc_clock::to_sys(utc_time).time_since_epoch() menos el número de segundos intercalares antes del 1 de enero de 2017 (27). Windows 10 versión 1809 y Windows Server 2019 han incorporado compatibilidad con los segundos intercalares. Esa compatibilidad está habilitada de manera predeterminada, aunque se puede deshabilitar. Si está habilitada, solo se incluyen en la hora los segundos intercalares después de julio de 2018 (no los comprendidos entre el 1 de enero de 2017 y julio de 2018).

Se recomienda usar std::chrono::clock_cast para convertir puntos temporales entre relojes en lugar de llamar directamente a esta función. Esto es especialmente relevante en file_clock, porque el estándar ISO C++ permite que este tipo defina to_utc y from_utc, o to_sys y from_sys. Dado que la implementación puede variar según el proveedor, puede usar clock_cast en su lugar, ya que lo proporcionan todos los proveedores de bibliotecas.

Ejemplo: from_utc

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    std::cout << clock_cast<file_clock>(utc_clock::now());

    return 0;
}
2021-08-17 00:20:41.2594557

to_utc

Método estático que convierte un file_time en un utc_time.

template <class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const file_time<Duration>& t);

Parámetros

t
Objeto file_time que se va a convertir.

Valor devuelto

Un utc_time que representa el equivalente file_time como t. Se recomienda usar std::chrono::clock_cast para convertir puntos temporales entre relojes en lugar de llamar directamente a esta función. Esto es especialmente relevante en file_clock, porque el estándar ISO C++ permite que este tipo defina to_utc y from_utc, o to_sys y from_sys. Dado que la implementación puede variar según el proveedor, puede usar clock_cast en su lugar, ya que lo proporcionan todos los proveedores de bibliotecas.

Ejemplo: to_utc

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    std::cout << clock_cast<std::chrono::utc_clock>(file_clock::now());

    return 0;
}
2021-08-17 00:20:41.2594557

is_steady

Valor estático que especifica si el tipo del reloj es constante. En la implementación de Microsoft, is_steady es false. Esto hace que este reloj no sea adecuado para medir cuánto tiempo tarda una operación, ya que se puede ajustar un reloj inestable mientras se está cronometrando algo, de modo que el tiempo medido puede ser cero o incluso negativo. En su lugar, use high_resolution_clock para cronometrar eventos.

static const bool is_steady = false;

ahora

Método estático que devuelve la hora actual del sistema, con resolución de nanosegundos, ajustada por el tiempo de file_clock.

static time_point now() noexcept;

Valor devuelto

Un objeto time_point que representa la hora actual.

Consulte también

<chrono>
gps_clock class
high_resolution_clock
Estructura local_t
Estructura steady_clock
Estructura system_clock
Clase tai_clock
Clase utc_clock
Referencia de archivos de encabezado