Share via


file_clock クラス

このクロックは、ファイル システムで使用されるファイル時間値の範囲と解像度を表します。

構文

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

解説

Microsoft の実装では、エポック、または file_clock が時間の測定を開始する時刻は、1/1/1601 00:00:00 です。

ISO C++ 標準では、to_sys()from_sys() を指定するか、to_utc() または from_utc() を指定するかを選択できます。 Microsoft の実装では、to_utcfrom_utc を選びました。

メンバー

名前 説明
from_utc 静的。 utc_timefile_timeに変換します。
now 静的。 現在の国際原子時を返します。
to_utc 静的。 file_timeutc_time に変換します。

非メンバー

名前 説明
from_stream 指定した形式を使用して、指定したストリームから file_clock を解析します。
operator<< 指定されたストリームに file_time を出力します。

便利な型のエイリアス

名前 説明
file_clock::duration Microsoft の実装では、duration<long long, ratio<1, 10'000'000> の同意語です。 これは、100 ナノ秒単位で測定された時間を表します。
file_clock::time_point time_point<File_time_clock> と同義。 このクロックの time_point を表す場合に使用します。
file_clock::period Microsoft の実装では、ratio<1, 10'000'000> の同意語です。 期間の各ティック間の秒 (100 ナノ秒) 単位の時間を表します。
file_clock::rep このクロックの file_clock::duration の整数単位を表す型 (long long) の同意語です。

関連項目

名前 説明
file_time time_point<file_clock, Duration> と同義。 file_clocktime_point を表します。 Duration を指定します。 std::chrono に定義されています

パブリック定数

名前 説明
file_clock::is_steady constant クロック型が一定かどうかを示します。 その値は false です。

必要条件

ヘッダー:<chrono> (C++20 以降)

名前空間std::chrono:

コンパイラ オプション:/std:c++latest

from_utc

utc_timefile_time に変換する静的メソッド。

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

パラメーター

t
変換する utc_time

戻り値

t と同等の utc_time を表す file_timeutc_clock::to_sys(utc_time).time_since_epoch() から 2017 年 1 月 1 日より前のうるう秒の数 (27) を引いた値として計算されます。 Windows 10 バージョン 1809 と Windows Server 2019 で、うるう秒のサポートが導入されました。 このサポートは既定で有効になっていますが、無効にできます。 有効にすると、2018 年 7 月以降のうるう秒 (2017 年 1 月 1 日から 2018 年 7 月の間ではなく) だけがその時間に含められます。

std::chrono::clock_cast を使用して、この関数を直接呼び出すのではなく、クロック間で時間を変換することをお勧めします。 ISO C++ 標準では、この型で file_clockto_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_timeutc_time に変換する静的メソッド。

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

パラメーター

t
変換する file_time

戻り値

t と同等の file_time を表す utc_timestd::chrono::clock_cast を使用して、この関数を直接呼び出すのではなく、クロック間で時間を変換することをお勧めします。 ISO C++ 標準では、この型で file_clockto_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

クロックの型が安定しているかどうかを指定する静的な値。 Microsoft の実装では、is_steadyfalse です。 これにより、タイミングの実施中に一定でないクロックが調整される可能性があり、測定された時間がオフになるか負になることがあるため、このクロックは、操作にかかる時間の測定には適さなくなります。 代わりに、high_resolution_clock を使用してイベントの時刻を設定します。

static const bool is_steady = false;

今すぐ

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 クラス
ヘッダー ファイル リファレンス