下面是一个示例adapted from cppreference.com:
#include <iostream>
#include <iomanip>
#include <ctime>
#include <chrono>
int main() {
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
std::time_t now_c = std::chrono::system_clock::to_time_t(now);
std::cout << "The time was just "
<< std::put_time(std::localtime(&now_c), "%F %T") << '\n';
}
我不喜欢这样。我想打印我的时间点而不必经历time_t
。我可以这样做:1.完全吗? 2.具有put_time支持的任意格式?
注释:
答案 0 :(得分:1)
在this answer中找到了一个部分解决方案,由于@inf的建议,该解决方案不允许您选择打印格式或时区:您可以简单地将时间点传送到标准输出以获取UTC时间戳记字符串:
std::cout << std::chrono::system_clock::now() << " UTC\n";
但问题仍然是任意格式。
答案 1 :(得分:0)
Howard Hinnant's library-已被投票成为C ++ 20的一部分-还支持类似put_time
的格式。
#include "date/date.h"
#include <iostream>
int
main()
{
std::cout << date::format("%m/%d/%Y %I:%M:%S %p\n", std::chrono::system_clock::now());
}
示例输出:
07/22/2018 03:30:35.001865 AM