29 Time library [time]

29.11 Time zones [time.zone]

29.11.2 Time zone database [time.zone.db]

29.11.2.1 Class tzdb [time.zone.db.tzdb]

namespace std::chrono { struct tzdb { string version; vector<time_zone> zones; vector<time_zone_link> links; vector<leap_second> leap_seconds; const time_zone* locate_zone(string_view tz_name) const; const time_zone* current_zone() const; }; }
Each vector in a tzdb object is sorted to enable fast lookup.
const time_zone* locate_zone(string_view tz_name) const;
Returns:
  • If zones contains an element tz for which tz.name() == tz_­name, a pointer to tz;
  • otherwise, if links contains an element tz_­l for which tz_­l.name() == tz_­name, then a pointer to the element tz of zones for which tz.name() == tz_­l.target().
[Note 1:
A time_­zone_­link specifies an alternative name for a time_­zone.
— end note]
Throws: If a const time_­zone* cannot be found as described in the Returns: element, throws a runtime_­error.
[Note 2:
On non-exceptional return, the return value is always a pointer to a valid time_­zone.
— end note]
const time_zone* current_zone() const;
Returns: A pointer to the time zone which the computer has set as its local time zone.