localtime возвращает значение NULL в Visual Studio 2015, когда _USE_32BIT_TIME_T установлен как часть препроцессора

У нас есть устаревший проект, в котором нам нужно получить максимальное время поддерживаемой эпохи, которое было достигнуто с помощью следующего фрагмента кода:

#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;
}

Хорошо, что он работал до перехода на Visual Studio 2015.
После миграции, хотя localtime () возвращает ноль.
Это происходит только когда мы передаем аргумент препроцессора _USE_32BIT_TIME_T .
Без которого он возвращает правильное максимальное значение 03:14:07, 19 января 2038 года, UTC.

Есть ли какие-либо известные проблемы из-за использования препроцессора _USE_32BIT_TIME_T в 2015 году.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]