名前空間
変種
操作

std::chrono::time_zone::to_local

From cppreference.com
< cpp‎ | chrono‎ | time zone
 
 
 
 
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 - 変換する時刻点

[編集] 戻り値

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 << "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
English 日本語 中文(简体) 中文(繁體)