在 C++ 中自定义日期格式
我有这个功能:
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;
}
输出是这样的:
2011 年 10 月 13 日星期四 12:35:30
但我想看到评论部分的输出:
2011-10-12 13:07:40
怎么可能?
I have this function:
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;
}
The output is like this:
Thu Oct 13 12:35:30 2011
but I wanna see the output like the comment section:
2011-10-12 13:07:40
How is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是很有可能的。查看
strftime()
的联机帮助页。在这种情况下,您需要:It's very possible. Look at the manpage for
strftime()
. In this case, you'd want:Boost 为此提供了一个库。
Boost offers a library for that.
您可以使用
strftime()< /code>
函数可以按照您想要的所有方式格式化时间。在您的情况下,格式字符串
"%Y-%m-%d %H:%M:%S"
应该产生所需的结果。You can use the
strftime()
function to format times in all ways you want. In your case the format string"%Y-%m-%d %H:%M:%S"
should produce the desired result.您可以使用 strftime() 将 struct tm 转换为具有某种灵活格式的字符串。
You can use strftime() to convert a struct tm into a string with somewhat flexible formatting.