簡體   English   中英

秒后的 system_clock::now() 值在 C++ 20 中代表什么?

[英]What does system_clock::now() value after seconds represent in C++ 20?

我正在探索從system_clock::now()返回的 C++ 20 中的時間戳,當我打印出返回的std::chrono::time_point時,它會以YYYY-MM-DD HH:MM:SS.xxxxxxx格式打印日期和時間YYYY-MM-DD HH:MM:SS.xxxxxxx

知道xxxxxxx值是什么嗎? 我最初假設是微秒,但我意識到微秒是小數點后六位,而這個值總是七。

我在 VS 2022 中運行它。

#include <iostream>
#include <chrono>

int main()
{
    using namespace std::chrono;
    auto timeDate = zoned_time{ current_zone(), system_clock::now() };
    std::cout << timeDate << std::endl;  // Output: 2022-07-29 08:55:22.8582577 BST
}

這是一秒的小數部分。

您得到的 output 來自operator<<(zoned_time) 這會以"{:L%F %T %Z}"格式輸出時間(參見cppreference.com )。 格式的%T部分等價於"%H:%M:%S"參考), %S將秒數指定為十進制浮點數,其精度與輸入的精度相匹配(即在您的情況下system_clock::now()的精度)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM