次の方法で共有


sys_info 構造体

タイム ゾーン情報に対する低レベルのインターフェイスを提供します。

構文

struct sys_info;

解説

sys_timelocal_time に変換した結果についてのタイム ゾーン情報への低レベルのインターフェイスを提供します。

メンバー

関数 説明
abbrev 関連付けられた time_zonetime_point に使用される省略形。
begin, end 関連付けられたタイム ゾーンに offsetabbrev が適用される範囲。
offset 関連付けられたtime_zonetime_point協定世界時 (UTC) オフセットと .
save 夏時間調整オフセット。

非メンバー

関数 説明
operator<< sys_info をストリームに出力します。

abbrev

関連付けられた time_zonetime_point に使用される省略形。

string abbrev;

戻り値

省略形。

解説

省略形は、time_zone 間で一意ではありません。 つまり、省略形を time_zone と UTC オフセットに確実にマップし直すことができません。

begin, end

関連付けられたタイム ゾーン [begin, end)offsetabbrev が適用される範囲を指定します。

sys_seconds begin;
sys_seconds end;

戻り値

返される sys_seconds は、関連付けられた time_point を基準にしたオフセットです。

offset

関連付けられてたタイム ゾーンと time_point に対して有効な UTC オフセット。

seconds offset;

戻り値

local_timesys_time の関係は offset = local_time - sys_time です。

save

sys_info が夏時間に設定されているかどうかを示し、そうであれば、このタイム ゾーンが夏時間でない場合に使用するはずのオフセットを示します。

minutes save;

戻り値

save != 0min の場合、タイム ゾーンは、関連付けられた time_point の夏時間です。 その場合、offset-save は、この time_zone が夏時間でない場合に使用するはずのオフセットを示します。

このオフセットは、信頼できるものではありません。 信頼できるオフセットを取得するには、クエリを使用して、夏時間中ではない time_point を使用しているタイム ゾーンと比較します。 つまり、save が 0 の値になる time_point と比較します。

例: sys_info の取得

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

using namespace std::chrono;

int main()
{
    sys_time<system_clock::duration> st = system_clock::now();
    
    const auto& timeZoneDatabase = get_tzdb();
    const auto& currentZone = timeZoneDatabase.current_zone();
    auto sysInfo = currentZone->get_info(st);

    std::cout << sysInfo << "\n";

    return 0;
}
begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT

要件

ヘッダー:<chrono>

名前空間std::chrono:

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

<chrono>
file_clock class
high_resolution_clock
local_t 構造体
system_clock 構造体
tai_clock クラス
utc_clock クラス
ヘッダー ファイル リファレンス