提交 3bdef853 编写于 作者: G Ganlin Zhao

fix: fix windows handling localtime_s error

上级 18b039fe
......@@ -33,6 +33,7 @@
#include <time.h>
//#define TM_YEAR_BASE 1970 //origin
#define TM_YEAR_BASE 1900 // slguan
#define _MAX__TIME64_T 0x793406fffi64
// This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC)
// until 00:00:00 January 1, 1970
......@@ -444,6 +445,9 @@ struct tm *taosLocalTime(const time_t *timep, struct tm *result) {
result->tm_yday = 0;
result->tm_isdst = 0;
} else {
if (*timep > _MAX__TIME64_T) {
return NULL;
}
localtime_s(result, timep);
}
#else
......@@ -500,6 +504,9 @@ struct tm *taosLocalTimeNolock(struct tm *result, const time_t *timep, int dst)
result->tm_yday = 0;
result->tm_isdst = 0;
} else {
if (*timep > _MAX__TIME64_T) {
return NULL;
}
localtime_s(result, timep);
}
#elif defined(LINUX)
......
......@@ -291,7 +291,10 @@ char *shellFormatTimestamp(char *buf, int64_t val, int32_t precision) {
}
struct tm ptm = {0};
taosLocalTime(&tt, &ptm);
if (taosLocalTime(&tt, &ptm) == NULL) {
sprintf(buf, "%s", "NaN");
return buf;
}
size_t pos = strftime(buf, 35, "%Y-%m-%d %H:%M:%S", &ptm);
if (precision == TSDB_TIME_PRECISION_NANO) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册