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_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 |
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_clock の time_point を表します。 Duration を指定します。 std::chrono に定義されています |
パブリック定数
名前 | 説明 |
---|---|
file_clock::is_steady constant |
クロック型が一定かどうかを示します。 その値は false です。 |
要件
Header: <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
。
戻り値
t
と同等の utc_time
を表す file_time
。 utc_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_clock
と to_utc
、または from_utc
と to_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
。
戻り値
t
と同等の file_time
を表す utc_time
。 std::chrono::clock_cast
を使用して、この関数を直接呼び出すのではなく、クロック間で時間を変換することをお勧めします。 ISO C++ 標準では、この型で file_clock
と to_utc
、または from_utc
と to_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_steady
は false
です。 これにより、タイミングの実施中に一定でないクロックが調整される可能性があり、測定された時間がオフになるか負になることがあるため、このクロックは、操作にかかる時間の測定には適さなくなります。 代わりに、high_resolution_clock
を使用してイベントの時刻を設定します。
static const bool is_steady = false;
now
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
クラス
ヘッダー ファイル リファレンス