我正在研究C++20中从system_clock::now()
返回的时间戳,当我打印出返回的std::chrono::time_point
时,它会以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
}
它是一秒的小数部分。
您得到的输出来自operator<<(zoned_time)
。它以"{:L%F %T %Z}"
格式输出时间(请参阅cpprreference.com(。格式的%T
部分等效于"%H:%M:%S"
(reference(,%S
将秒指定为十进制浮点数,其精度与输入的精度(即system_clock::now()
(。