Поделиться через


Класс file_clock

Эти часы могут представлять диапазон и разрешение значений времени файла, используемых в файловой системе.

Синтаксис

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

Замечания

В реализации Майкрософт эпоха или время, с которого file_clock начинается измерение времени, составляет 1/1/1601 00:00:00.

Стандарт ISO C++ предоставляет выбор между предоставлением to_sys() и from_sys()( или to_utc() ) и from_utc(). Реализация Майкрософт выбрала to_utc и from_utc.

Участники

Имя Описание
from_utc Статическая. Преобразует utc_time в file_time.
now Статическая. Возвращает текущее международное атомное время.
to_utc Статическая. Преобразует объект file_time utc_timeв .

Не являющиеся членами

Имя Описание
from_stream Синтаксический file_clock анализ из заданного потока с помощью указанного формата.
operator<< Выходные данные file_time заданного потока.

Псевдонимы удобных типов

Имя Описание
file_clock::duration В реализации Корпорации Майкрософт это синоним duration<long long, ratio<1, 10'000'000>. Он представляет длительность времени, измеряемого в единицах 100 наносекунд.
file_clock::time_point Синоним для time_point<File_time_clock>. Используется для представления time_point часов.
file_clock::period В реализации Корпорации Майкрософт это синоним ratio<1, 10'000'000>. Он представляет время в секундах (100 наносекунд) между каждым тиком в течение длительности.
file_clock::rep Синоним типа (long long), используемый для представления целочисленных единиц в этом часовом режиме file_clock::duration.

Родственный

Имя Описание
file_time Синоним для time_point<file_clock, Duration>. time_point Представляет для file_clock. Укажите Duration. Определено в std::chrono

Общедоступные константы

Имя Описание
file_clock::is_steady constant Указывает, является ли тип часов устойчивым. Его значение равно false.

Требования

Заголовок: <chrono> (с C++20)

Пространство имен: std::chrono

Параметр компилятора: /std:c++latest

from_utc

Статический метод, который преобразуется utc_time в объект file_time.

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

Параметры

t
Объект utc_time для преобразования.

Возвращаемое значение

Значение, file_time представляющее эквивалент utc_time t. Он вычисляется как utc_clock::to_sys(utc_time).time_since_epoch() минус количество секунд прыжка до 1 января 2017 г. (27). Windows 10 версии 1809 и Windows Server 2019 появились поддержку в секундах прыжка. Эта поддержка включена по умолчанию, хотя ее можно отключить. Если включено, в это время включены только секунды прыжка после июля 2018 г. (а не с 1 января 2017 г. по июль 2018 г.).

Мы рекомендуем использовать std::chrono::clock_cast для преобразования точек времени между часами, а не вызова этой функции напрямую. Это особенно важно, file_clock так как стандарт ISO C++ позволяет этому типу определять to_utc или , или from_utcto_sys from_sys. Так как реализация может отличаться от поставщика, можно использовать clock_cast вместо этого, которая предоставляется всеми поставщиками библиотеки.

Пример: 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

Статический метод, который преобразуется file_time в объект utc_time.

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

Параметры

t
Объект file_time для преобразования.

Возвращаемое значение

Значение, utc_time представляющее эквивалент file_time t. Рекомендуется std::chrono::clock_cast преобразовать точки времени между часами, а не вызывать эту функцию напрямую. Это особенно важно, file_clock так как стандарт ISO C++ позволяет этому типу определять to_utc или , или from_utcto_sys from_sys. Так как реализация может отличаться от поставщика, можно использовать clock_cast вместо этого, которая предоставляется всеми поставщиками библиотеки.

Пример: 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

Статическое значение, указывающее, являются ли часы постоянными. В реализации is_steady Майкрософт используется false. Это делает эти часы непригодными для измерения времени операции, потому что незаменяемые часы можно настроить, пока вы используете время, поэтому измеряемое время может быть отключено или даже отрицательно. high_resolution_clock Вместо этого используйте события времени.

static const bool is_steady = false;

сейчас

Статический метод, возвращающий текущее системное время с разрешением nanosecond, скорректированным эпохой.file_clock

static time_point now() noexcept;

Возвращаемое значение

Объект time_point, представляющий текущее время.

См. также

<chrono>
gps_clock class
high_resolution_clock
Структура local_t
Структура steady_clock
Структура system_clock
Класс tai_clock
Класс utc_clock
Справочник по файлам заголовков