我有一个功能:
string get_current_time()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
return asctime (timeinfo);
}
以下列格式返回时间:
Fri Mar 18 11:25:04 2011
如何更改它以便以下列格式返回?
2011 03-18 11-25-04 Fri
我想将它用于日志文件名。
答案 0 :(得分:6)
建议 @ 0A0D ,虽然您无法更改asctime
,但可以使用strftime
格式化time_t
中包含的数据:
string get_current_time()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
char output[30];
strftime(output, 30, "%Y %m-%d %H-%M-%S %a", timeinfo);
return string(output);
}
(我还将一份副本放到了IdeOne here上。)
答案 1 :(得分:3)
asctime()
总是以Www Mmm dd hh:mm:ss yyyy的格式返回。它无法改变。
如果您想使用其他格式,请查看strftime()。