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;
傳回值
結果可以是下列其中一個值:
unique
local_time
:已成功轉換成sys_time
。nonexistent
:沒有從local_time
對應到sys_time
的對應。ambiguous
local_time
:日光節約時間與標準時間之間的轉換期間登陸,因此可以轉換成兩個sys_time
值。
備註
如需如何first
根據 設定 和 second
的相關信息,請參閱下列有關 first
、 second
一result
節。
first
, second
提供將轉換成 local_time
sys_time
的結果。
sys_seconds begin;
sys_seconds end;
傳回值
first
和 second
會根據 result
下列方式進行設定:
result |
first |
second |
---|---|---|
unique |
包含轉換成的值local_time sys_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
,而且 first
會 second
反映 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
類別
標頭檔參考