diff --git a/src/util/src/ttime.c b/src/util/src/ttime.c index 0e749b5be9..05ba01979e 100644 --- a/src/util/src/ttime.c +++ b/src/util/src/ttime.c @@ -142,21 +142,15 @@ int32_t parseTimezone(char* str, int64_t* tzOffset) { i += 2; } - if (hour > 12) { + int64_t minute = strnatoi(&str[i], 2); + if (minute > 59) { return -1; } - int64_t sec = strnatoi(&str[i], 2); - if (sec > 70) { - return -1; - } - - sec += (hour * 3600); - if (str[0] == '+') { - *tzOffset = -sec; + *tzOffset = -(hour * 3600 + minute * 60); } else { - *tzOffset = sec; + *tzOffset = hour * 3600 + minute * 60; } return 0; diff --git a/src/util/src/tutil.c b/src/util/src/tutil.c index 710d56603f..f9bd6aace4 100644 --- a/src/util/src/tutil.c +++ b/src/util/src/tutil.c @@ -227,7 +227,7 @@ int64_t strnatoi(char *num, int32_t len) { } else { return 0; } - ret = dig * base; + ret += dig * base; } } else { for (i = len - 1; i >= 0; --i, base *= 10) {