如何在C中格式化日期和时间字符串

前端之家收集整理的这篇文章主要介绍了如何在C中格式化日期和时间字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有time_t和tm结构.我不能使用Boost而是MFC.如何使其成为如下所示的字符串?
Mon Apr 23 17:48:14 2012

使用sprintf的唯一方法

解决方法

C库包括 strftime专门用于格式化日期/时间.你要求的格式似乎符合这样:
char buffer[256];

strftime(buffer,sizeof(buffer),"%a %b %d %H:%M:%S %Y",&your_tm);

我相信std::put_time使用类似的格式字符串,尽管它可以缓解您必须明确处理缓冲区.如果要将输出写入一个流,这是非常方便的,但是要将其输入到字符串中,这不是很有帮助 – 您必须执行以下操作:

std::stringstream buffer;

buffer << std::put_time(&your_tm,"%a %b %d %H:%M:%S %Y");

// now the result is in `buffer.str()`.

std :: put_time是C 11的新增功能,但是C 03在一个可以做同样事情的区域中有一个time_put方面.如果记忆服务,我确实设法让它工作一次,但之后决定这是不值得的麻烦,我没有这样做.

猜你在找的C&C++相关文章