std::chrono::time_zone::to_local
来自cppreference.com
| |
(C++20 起) | |
转换 sys_time tp 为此时区中对应的 local_time。
返回值
与 tp 和此时区关联的 local_time。
注解
结果的精度至少为 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 << "当前时间(UTC)为:\t" << time_pt_utc << '\n';
try
{
std::cout << "当前时间(本地)为:\t\t"
<< std::chrono::current_zone()-> // 可能抛出异常
to_local(time_pt_utc) << '\n'
<< "当前时间(" << some_zone_name << ")为:\t\t"
<< std::chrono::locate_zone(some_zone_name)-> // 可能抛出异常
to_local(time_pt_utc) << '\n';
}
catch(const std::runtime_error& ex)
{
std::cout << ex.what() << '\n';
}
}
可能的输出:
当前时间(UTC)为: 2025-02-10 13:38:13.233872158
当前时间(本地)为: 2025-02-10 16:38:13.233872158
当前时间(Australia/Sydney)为: 2025-02-11 00:38:13.233872158