我有这个功能:
void Log::Write(string logline){
//2011-10-12 13:07:40 correct format
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
m_stream.write( asctime (timeinfo), 24 );
m_stream << " - " << logline << std::endl;
}
输出如下:
Thu Oct 13 12:35:30 2011
但是我想看看评论部分的输出:
2011-10-12 13:07:40
怎么可能?
答案 0 :(得分:5)
这很有可能。查看strftime()
的联机帮助页。在这种情况下,您需要:
void Log::Write(string line)
{
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
strftime (buffer,80,"%Y-%m-%d %H:%M:%S",timeinfo);
m_stream << buffer << " - " << line << endl;
}
答案 1 :(得分:1)
Boost为此提供library。
答案 2 :(得分:1)
您可以使用strftime()
功能以您想要的所有方式设置时间格式。在您的情况下,格式字符串"%Y-%m-%d %H:%M:%S"
应该产生所需的结果。
答案 3 :(得分:0)
您可以使用strftime()将struct tm转换为具有稍微灵活格式的字符串。