首先,需要定义一个 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类型的时间
    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
  • 希望这个例子能够帮助到您。

  •