获取当前时间信息出现错误代码如下,应该如何修改,感谢诸君
void gb28181_get_time(char* buf) //获取本地时间函数
{
char szContentBuf[200] = "";//开辟一个char型szContentBuf缓存空间,用于存储时间信息
time_t timep;
struct tm *p;//创建tm时间结构体指针 *p
#if 0
time(&timep);
p = gmtime(&timep);//格林时间
#else
time(&timep);
p = localtime(&timep);//当地时间
#endif
sprintf(szContentBuf, "%04d-%02d-%02dT%02d:%02d:%02d", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);//输出获取到的时间信息
strcpy(buf, szContentBuf);//把获取到的时间信息复制到buf中
}
char tmp_time[20] = {0}; //开辟一个char型的tmp_time缓冲区空间用于存储本地获取到的时间数据
gb28181_get_time(tmp_time); //------------------调用获取本地时间函数------------------------
debug_info("Time: %s\n",tmp_time); //输出当前本地系统时间
日志输出结果显示:Time:1970-01-11T13:49:57
我在VS2010上原样测试你的代码,没毛病啊
time_t tt = time(NULL); //获取时间
//tt = -1;
//struct tm * pTime = localtime(&tt); //旧版本列子
tm tms;
errno_t nErr = localtime_s(&tms,&tt);
CString str;
str.Format(_T("%d年%d月%d日 %d:%d:%d"),tms.tm_year + 1900,tms.tm_mon + 1,tms.tm_mday,tms.tm_hour,tms.tm_min,tms.tm_sec);
AfxMessageBox(str);
以前写的,很相似,你参考一下!
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
cout<<"现在的时间为:"<<endl;
system("DATE"); //显示日期并设置日期
//system("DATE/t") //显示日期
return 0;
}
gcc 也是正常运行
问题已解决,代码木有问题,出现问题的是我当前linux操作系统不能联网,同时也没有手动修改linux系统时间,修改一下linux的系统时间和硬件时间就好了