加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:29:46 所属栏目:百科 来源:网络整理
导读:假设我有time_t和tm结构.我不能使用Boost而是MFC.如何使其成为如下所示的字符串? Mon Apr 23 17:48:14 2012 使用sprintf的唯一方法? 解决方法 C库包括 strftime 专门用于格式化日期/时间.你要求的格式似乎符合这样: char buffer[256];strftime(buffer,siz
假设我有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方面.如果记忆服务,我确实设法让它工作一次,但之后决定这是不值得的麻烦,我没有这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读