std::chrono::time_zone::to_local
template< class Duration >
auto to_local( const std::chrono::sys_time<Duration>& tp ) const
-> std::chrono::local_time<std::common_type_t<Duration, std::chrono::seconds>>;
| (начиная с C++20) |
Преобразует sys_time tp в соответствующий local_time в этом часовом поясе.
Параметры
| tp | - | точка времени для преобразования |
Возвращаемое значение
local_time, связанный с tp и этим часовым поясом.
Примечания
Точность результата составляет не менее std::chrono::seconds и будет выше, если аргумент имеет более высокую точность.
Пример
#include <chrono>
#include <iostream>
int main()
{
const auto some_zone_name{"Australia/Sydney"};
const auto time_pt_utc{std::chrono::system_clock::now()};
std::cout << "Current time UTC is:\t\t " << time_pt_utc << '\n';
try
{
std::cout << "Current time local is:\t\t "
<< std::chrono::current_zone()-> // may throw
to_local(time_pt_utc) << '\n'
<< "Current time " << some_zone_name << " is:\t "
<< std::chrono::locate_zone(some_zone_name)-> // may throw
to_local(time_pt_utc) << '\n';
}
catch(const std::runtime_error& ex)
{
std::cout << ex.what() << '\n';
}
}
Возможный вывод:
Current time UTC is: 2025-02-10 13:38:13.233872158 Current time local is: 2025-02-10 16:38:13.233872158 Current time Australia/Sydney is: 2025-02-11 00:38:13.233872158
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/chrono/time_zone/to_local