获取系统时间函数,输出错误,如何修改

获取当前时间信息出现错误代码如下,应该如何修改,感谢诸君


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);

以前写的,很相似,你参考一下!

括号内应添加:
CTime tRecordTime = CTime::GetCurrentTime();
CString strRecordTime = tRecordTime.Format("%Y-%m-%d %H:%M:%S");

参考:


求个采纳安慰一波


#include <iostream>

#include <stdlib.h>

using namespace std;

int main()

{

 cout<<"现在的时间为:"<<endl;

 system("DATE"); //显示日期并设置日期

 //system("DATE/t") //显示日期

 return 0;

}

gcc 也是正常运行

img

问题已解决,代码木有问题,出现问题的是我当前linux操作系统不能联网,同时也没有手动修改linux系统时间,修改一下linux的系统时间和硬件时间就好了