假设我有time_t和tm结构.我不能使用Boost而是使用MFC.我怎样才能使它像下面的字符串?
Mon Apr 23 17:48:14 2012
Run Code Online (Sandbox Code Playgroud)
使用sprintf是唯一的方法吗?
Jer*_*fin 34
C库strftime专门用于格式化日期/时间.你要求的格式似乎对应于这样的东西:
char buffer[256];
strftime(buffer, sizeof(buffer), "%a %b %d %H:%M:%S %Y", &your_tm);
Run Code Online (Sandbox Code Playgroud)
我相信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()`.
Run Code Online (Sandbox Code Playgroud)
std::put_time在C++ 11中是新的,但C++ 03 time_put在语言环境中有一个方面可以做同样的事情.如果内存服务,我确实设法让它工作一次,但在那之后决定它不值得麻烦,我从那以后就没有做过.
| 归档时间: |
|
| 查看次数: |
64586 次 |
| 最近记录: |