共用方式為


local_info 結構

提供將 轉換成 local_time sys_time之結果的時區資訊低階介面。

語法

struct local_info;

成員

函式 描述
result 描述轉換結果的程序代碼。
first, second 轉換的結果。

成員常數

名稱 數值 描述
unique 0 轉換的結果是唯一的。
nonexistent 1 沒有對應的 sys_time ,無法將 轉換成 local_time
ambiguous 2 轉換的結果模棱兩可。

非成員

函式 描述
operator<< local_info將輸出至數據流。

result

local_time sys_time轉換成的結果。

int result;

傳回值

結果可以是下列其中一個值:

  • uniquelocal_time:已成功轉換成 sys_time
  • nonexistent:沒有從 local_time 對應到 sys_time的對應。
  • ambiguouslocal_time:日光節約時間與標準時間之間的轉換期間登陸,因此可以轉換成兩個sys_time值。

備註

如需如何first根據 設定 和 second 的相關信息,請參閱下列有關 firstsecondresult節。

first, second

提供將轉換成 local_time sys_time的結果。

sys_seconds begin;
sys_seconds end;

傳回值

firstsecond 會根據 result 下列方式進行設定:

result first second
unique 包含轉換成的值local_timesys_time 零初始化
nonexistent sys_info在之前結束的 。local_time sys_info 會在之後 local_time開始。
ambiguous sys_info在之後結束的 。local_time sys_info 在 之前 local_time啟動。

ambiguous 結果碼

從日光節約時間轉換到秋季的標準時間期間,時鐘基本上會增加一小時。 這可能會造成混淆,因為轉換到標準時間是否意味著失去一小時? 藉由倒退一小時,轉換前的小時會在時鐘調整標準時間之後重複。 請考慮紐約標準時間的變更,該時間發生在11月的第一個星期天上午2:00。 首先,上午 1:00 會過去。 淩晨 2 點,時鐘會轉換為標準時間,所以現在又是上午 1:00。 這表示上午 1 點到 2 點之間的時間將會「重複」,有效地增加了一個小時。 如需範例,請參閱 ambiguous_local_time

local_time如果 指定此「額外」小時內的時間,則不清楚如何轉換。 轉換的時間應該視為該小時發生的「第一次」時間,還是「第二次」? 如果未指定列舉 choose 來指出它應該是哪一個,預期 result 會設定為 ambiguous,而且 firstsecond 反映 local_time 兩個選項,以便轉換的時間。

nonexistent 結果碼

在從標準時間到春季日光節約時間的轉換期間,時鐘基本上會失去一小時。 這可能會造成混淆,因為轉換到日光節約時間是否意味著增加一小時? 通過「向前跳動」一小時,轉換後的小時會有效移除。 請考慮紐約日光節約時間的變更,該時間發生在3月的第二個星期天淩晨2點。 上午 2 點,時鐘會轉換為日光節約時間,現在上午 3:00 讀取。 例如,如果轉換的 local_time 是上午 2:30,該時間是在「移除」期間,因此您可以預期 result 會有程序 nonexistent 代碼。 如需範例,請參閱 nonexistent_local_time

範例:取得 local_info

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    const auto& timeZoneDatabase = get_tzdb();
    const auto& currentZone = timeZoneDatabase.current_zone();

    local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());

    auto localInfo = currentZone->get_info(lt);

    std::cout << "local_time: " << lt << "\n";
    std::cout << localInfo << "\n";

    return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)

需求

標頭: <chrono>

命名空間std::chrono

編譯程序選項: /std:c++latest

<chrono>
ambiguous_local_time 例外
choose 列舉
file_clock 類別
high_resolution_clock
local_t 結構
non_existent 例外
system_clock 結構
tai_clock 類別
utc_clock 類別
標頭檔參考