std::chrono::time_zone::to_local
来自cppreference.com
template<class Duration > auto to_local(conststd::chrono::sys_time<Duration>& tp )const | (C++20 起) | |
转换 sys_time
tp 为此时区中对应的 local_time
。
[编辑] 返回值
与 tp 和此时区关联的 local_time
。
[编辑] 注解
结果的精度至少为 std::chrono::seconds
,而若实参拥有更精细的精度则将更精细。
[编辑]示例
运行此代码
#include <chrono>#include <iostream> int main(){constauto some_zone_name{"Australia/Sydney"};constauto 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(conststd::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