std::put_time
是一个 C++11 标准库函数,它可以将一个时间数据格式化为一个字符串,其原型如下:
template <class TChar, class TStreambuf, class Tp>
std::basic_ostream<TChar, TStreambuf>&
put_time(const std::tm* tmb, const Tp* fmt);
其中,tmb
是一个指向 tm
结构体的指针,即待格式化的时间数据;fmt
是一个常指针,指向一个 C 风格的格式化字符串。
该函数返回一个(基于所传进来的时间数据和格式化字符串而生成的)字符串的输出流对象。所以在使用时,通常需要带上 <<
运算符,将输出流对象插入到合适的输出流中。如下面的例子:
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
std::time_t now = std::time(nullptr);
std::tm tm_now = *std::localtime(&now);
std::cout << std::put_time(&tm_now, "%Y-%m-%d %H:%M:%S") << '\n';
}
这个例子中,我们首先获取了当前时间,然后调用 std::localtime
函数来获取一个 tm
类型的结构体,代表了当前时间。最后,我们调用 std::put_time
函数,将这个结构体以 "%Y-%m-%d %H:%M:%S"
的格式格式化为一个字符串,并通过 std::cout
输出。
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明来自 张拓的博客!