提供將 轉換成 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 的相關信息,請參閱下列有關 first、 second一result節。
first, second
提供將轉換成 local_time sys_time的結果。
sys_seconds begin;
sys_seconds end;
傳回值
first 和 second 會根據 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,而且 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 類別
標頭檔參考