跟时区有关系,我们北京时间是GMT+08:00(东八区),比标准时间多了8个小时
获得的是6h,换算成北京时间就是14h
获得的是20h,换算成北京时间就是28h-24h=4h
C/C++中,数组作参数时,会退化成指针,所以你用sizeof(out)计算出来的长度就是指针的长度,根据你 *** 作系统的位数,有可能是4或者8,也就是说最多往out里写4或者8个字节,所以,出来的结果就不对了,改一下就行了:
#include <stdioh>#include <timeh>
void getSysTime(char out, const char format)
{
time_t t = time(NULL);
struct tm tm = localtime(&t);
strftime(out, 100, format, tm);//可以接收的最大字符数修改一下,注意字符串结束符,我这里没处理,因为一般需要的长度不会超过100
}
int main()
{
char cTime[100] = {0};
getSysTime(cTime, "%Y-%m-%d %H:%M:%S");
printf("%s\n", cTime);
return 0;
}
运行截图:
以上就是关于VC做上位机怎么获取时间全部的内容,包括:VC做上位机怎么获取时间、C++ strftime方法格式输出时间错误、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)