C ++ Epoch到时间戳

时间:2014-10-22 14:05:42

标签: c++

基本上我循环遍历sqlite表获取我需要呈现的相关数据,包括存储在Epoch中的时间戳,如'1409827517628'。我想做的就是将整数转换为格式为'“%Y-%m-%d%H:%M:%S'的字符串。

非常感谢。

1 个答案:

答案 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