我有几秒钟long tv_sec
的时间,我希望使用%Y-%m-%d %X
函数使用格式stftime
获取正确的日期和时间。
所以我有几秒钟的时间戳,我想用stftime
转换它。
这是我的试用
struct tm dateStruct;
memset(dateStruct, 0, sizeof(struct tm));
gmtime(×tampInSecs,dateStruct);
char buffer[80];
strftime(buffer,80,"%Y-%m-%d %X", dateStruct);
printf("Formatted date & time : |%s|\n", buffer );
答案 0 :(得分:0)
确保timestampInSecs
为time_t
类型并尝试此操作:
char buffer[80];
strftime(buffer,80,"%Y-%m-%d %X", gmtime(×tampInSecs));
printf("Formatted date & time : |%s|\n", buffer );
修改强>
示例:如果timestampInSecs
代表1/1/2000
的秒数,则必须使用1/1/1970
的所有秒数补偿变量(Linux time.h中的纪元)
从1970年1月1日到2000年1月1日,我们有:
10957
天262968
小时946684800
秒最后,您必须将946684800
加到您的变量中才能使用strftime
,如我的代码所示。
然后您必须做的是计算1/1/1970
与您的开始日期和时间(timestampInSecs=0
的日期和时间)之间的秒数