基本上我循环遍历sqlite表获取我需要呈现的相关数据,包括存储在Epoch中的时间戳,如'1409827517628'。我想做的就是将整数转换为格式为'“%Y-%m-%d%H:%M:%S'的字符串。
非常感谢。
答案 0 :(得分:2)
您可以使用C函数localtime(3)将time_t
(通常是某种整数类型)转换为struct tm
,然后使用strftime(3)将其转换为C字符串,例如:
time_t yourtime = something(); // from database perhaps
char yourbuf[64];
strftime(yourbuf, sizeof(yourbuf),
"%Y-%m-%d %H:%M:%S",
localtime(&yourtime));
std::string yourstring(yourbuf);
请注意,上面的代码不是可重入的,因此不适合多线程应用程序(在这种情况下,请使用localtime_r
等...)
如果您需要相反的转换(从字符串到time_t
),请使用strptime(3)然后mktime(3) ....
使用C ++ 11,还可以使用chrono