# std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb

From cppreference.com
< cpp‎ | chrono

std::chrono::tzdb_list& get_tzdb_list(); | (1) | (since C++20)
const std::chrono::tzdb& get_tzdb(); | (2) | (since C++20)
std::string remote_version(); | (3) | (since C++20)
const std::chrono::tzdb& reload_tzdb(); | (4) | (since C++20)

These functions provide access to the program-wide time zone database.

1) Returns a reference to the global std::chrono::tzdb_list singleton. If this is the first access to the database, initialize the database. After the initialization, the database will hold a single initialized std::chrono::tzdb object. This function is thread-safe: concurrent calls to this function from multiple threads do not introduce a data race.
2) Returns a reference to the first std::chrono::tzdb object held by the `tzdb_list` singleton. Equivalent to std::chrono::get_tzdb_list().front().
3) Returns a string containing the latest remote database version.
4) If remote_version() != get_tzdb().version, pushes a new `tzdb` object representing the remote database to the front of the `tzdb_list` singleton referenced by `get_tzdb_list()`. Otherwise there are no effects. No references, pointers or iterators are invalidated. Calling this function concurrently with get_tzdb_list().front() or get_tzdb_list().erase_after() does not introduce a data race.

### Exceptions

1) std::runtime_error if for any reason a reference to a `tzdb_list` containing one or more valid `tzdb` cannot be returned.

### Return value

1) A reference to the global std::chrono::tzdb_list singleton.
2) std::chrono::get_tzdb_list().front().
3) A string containing the latest remote database version.
4) std::chrono::get_tzdb_list().front() (after any update made by this function).
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/chrono/tzdb_functions&oldid=146347"