首先,需要定义一个
std::chrono::system_clock::time_point
类型的时间点对象,可以使用
std::chrono::system_clock::now()
获取当前的时间点。
然后,可以使用
std::chrono::system_clock::to_time_t()
将时间点对象转换为
std::time_t
类型的时间,这个类型可以用来进行时间格式化。
接着,使用
std::localtime()
将
std::time_t
类型的时间转换为本地时间的
std::tm
类型的结构体。
最后,可以使用
std::put_time()
函数将
std::tm
类型的结构体格式化输出为指定的字符串。
下面是一个例子,演示如何将当前时间格式化为"年-月-日 时:分:秒"的字符串:
#include <iostream>
#include <chrono>
#include <iomanip>
int main()
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
std::time_t t = std::chrono::system_clock::to_time_t(now);
std::tm* local_time = std::localtime(&t);
std::cout << std::put_time(local_time, "%Y-%m-%d %H:%M:%S") << std::endl;
return 0;
输出结果类似于:"2023-02-15 15:25:30"。
需要注意的是,这里的时间格式化字符串"%Y-%m-%d %H:%M:%S"中,各个字符的含义如下:
%Y:年,4位数字表示
%m:月,2位数字表示,不足2位时前面补0
%d:日,2位数字表示,不足2位时前面补0
%H:小时,24小时制,2位数字表示,不足2位时前面补0
%M:分钟,2位数字表示,不足2位时前面补0
%S:秒,2位数字表示,不足2位时前面补0
希望这个例子能够帮助到您。