这是一个例子 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
。我可以这样做吗……:
- 完全没有?
- 支持像
put_time
这样的任意格式?
注意事项:
- 标准库解决方案是最好的;非标准但强大的解决方案也很重要。
- 不是this的骗子- 因为我也对任意格式打印感兴趣;但应该注意的是,@HowardHinnant 对那个问题的回答解决了这个问题的第一部分。
最佳答案
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
关于c++ - 我可以避免通过 time_t 打印 time_point 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460135/