sys_info 结构

提供时区信息的低级别接口。

语法

struct sys_info;

备注

为有关将 sys_time 转换为 local_time 的结果的时区信息提供一个低级别接口。

成员

Function 说明
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

提供 offsetabbrev 适用于关联时区 [begin, end) 的范围。

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 值为零的 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
头文件引用