namespace std::chrono {
struct sys_info {
sys_seconds begin;
sys_seconds end;
seconds offset;
minutes save;
string abbrev;
};
}
A
sys_info object can be obtained
from the combination of a
time_zone and
either a
sys_time or
local_time. It can also be obtained from a
zoned_time,
which is effectively a pair of a
time_zone and
sys_time.[
Note 1:
This type provides a low-level interface to time zone information
. Typical conversions from
sys_time to
local_time
will use this class implicitly, not explicitly
. —
end note]
The
begin and
end data members indicate that,
for the associated
time_zone and
time_point,
the
offset and
abbrev are in effect in the range [
begin, end)
. This information can be used to efficiently iterate the transitions of a
time_zone.The
offset data member indicates
the UTC offset in effect
for the associated
time_zone and
time_point. The relationship between local_time and sys_time is:
offset = local_time - sys_time
The
save data member is extra information not normally needed
for conversion between
local_time and
sys_time. If
save != 0min, this
sys_info is said to be on “daylight saving” time,
and
offset - save suggests what offset this
time_zone might use
if it were off daylight saving time
. However, this information should not be taken as authoritative
. The only sure way to get such information
is to query the
time_zone with a
time_point
that returns a
sys_info where
save == 0min. There is no guarantee what
time_point might return such a
sys_info
except that it is guaranteed not to be in the range [
begin, end)
(if
save != 0min for this
sys_info)
.The
abbrev data member indicates
the current abbreviation used for the associated
time_zone and
time_point. Abbreviations are not unique among the
time_zones,
and so one cannot reliably map abbreviations back to a
time_zone and UTC offset
.template<class charT, class traits>
basic_ostream<charT, traits>&
operator<<(basic_ostream<charT, traits>& os, const sys_info& r);
Effects: Streams out the
sys_info object
r in an unspecified format
.