vc6中的localtime的问题

时间:2021-10-01 04:06:28
1、将系统时间设置为2038年。
2、运行下面的程序:
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char* argv[])
{
time_t timer = time(NULL);

struct tm* t = localtime(&timer);   //2038年以后这里返回0,2037年则正常

char m_szFile[128];

         strftime(m_szFile, sizeof(m_szFile), "Lsd%Y%m%d.log", t) ;  //t = 0,这里就崩溃了
         ...
}

3、2037年则可以,2038年以后就不行了,Why?

3 个解决方案

#1


这是微软的BUG,正常!你可以跟踪调试一下!

#2


怎么解决比较好?

#3


就是这样的
用这个吧:
tm tm_data;
_getsystime(&tm_data);

#1


这是微软的BUG,正常!你可以跟踪调试一下!

#2


怎么解决比较好?

#3


就是这样的
用这个吧:
tm tm_data;
_getsystime(&tm_data);