Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在visual studio 2015中将_USE_32BIT_TIME设置为预处理器的一部分时,localtime返回null_C++_Visual Studio 2015_Max_Localtime - Fatal编程技术网

C++ 在visual studio 2015中将_USE_32BIT_TIME设置为预处理器的一部分时,localtime返回null

C++ 在visual studio 2015中将_USE_32BIT_TIME设置为预处理器的一部分时,localtime返回null,c++,visual-studio-2015,max,localtime,C++,Visual Studio 2015,Max,Localtime,我们有一个遗留项目,我们需要通过以下代码片段获得支持的最大纪元时间: #include "stdafx.h" #include <stdio.h> /* puts, printf */ #include <time.h> /* time_t, struct tm, time, localtime */ #define LONG_MAX 2147483647L // maximum (signed) long value int main(

我们有一个遗留项目,我们需要通过以下代码片段获得支持的最大纪元时间:

#include "stdafx.h"
#include <stdio.h>      /* puts, printf */
#include <time.h>       /* time_t, struct tm, time, localtime */

#define LONG_MAX      2147483647L // maximum (signed) long value
int main()
{
    struct tm * timeinfo;
    long elapsedTime = LONG_MAX;
    time_t temp = elapsedTime;
    timeinfo = localtime(&temp);
    printf("Current local time and date: %s", asctime(timeinfo));
    getchar();
    return 0;
}
#包括“stdafx.h”
#包括/*看跌期权,printf*/
#包括/*time\u t、struct tm、time、localtime*/
#定义长\u MAX 2147483647L//最大(有符号)长值
int main()
{
结构tm*时间信息;
long elapsedTime=long_MAX;
时间温度=经过的时间;
timeinfo=localtime(&temp);
printf(“当前本地时间和日期:%s”,asctime(timeinfo));
getchar();
返回0;
}
好的是,它在VisualStudio2015迁移之前一直有效。 通过localtime()进行迁移后,返回null。 只有当我们传递预处理器参数\u USE\u 32BIT\u TIME\u T时,才会发生这种情况。 如果没有它,它将返回正确的最大值03:14:072038年1月19日UTC


由于2015年使用32位时间前置处理器,是否存在任何已知问题。

无需担心。。算了吧。。看起来msdn对2015年通过的长值实施了更严格的检查#定义LONG_MAX 2147463847L需要传递才能获得32位端支持的最大时间。无需担心。。算了吧。。看起来msdn对2015年通过的长值实施了更严格的检查#需要传递define LONG_MAX 2147463847L以获得32位端支持的最大时间。