C++ Epoch to Timestamp

C++ Epoch to Timestamp

本文关键字:Timestamp to Epoch C++      更新时间:2023-10-16

本质上,我在sqlite表中循环,获得我需要呈现的相关数据,包括存储在Epoch中的时间戳,如"1409827517628"。我只想把这个整数转换成一个字符串,格式为"%Y-%m-%d%H:%m:%S"。

非常感谢。

您可以使用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