fix: The tm struct obtained by mktime lacks timezone information
BREAKING CHANGE: The tm struct obtained by mktime lacks timezone information 变更API: time_t mktime(struct tm *tmptr) 原先mktime从入参中获取时区信息进行计算,变更后tm结构体和返回值time_t的计算使用系统g_timezone时区环境变量。 Close I67UIA Signed-off-by: arvinzzz <zhaotianyu9@huawei.com> Change-Id: I766cffbff3c1a25bb33cbd245225ee117909af3a
This commit is contained in:
parent
6cd48f6f90
commit
2a4282f912
|
@ -664,7 +664,7 @@ static time_t ConvertUtc2Secs(struct tm *tm)
|
|||
seconds += (tm->tm_mday - 1) * SECS_PER_DAY;
|
||||
seconds += tm->tm_hour * SECS_PER_HOUR + tm->tm_min * SECS_PER_MIN + tm->tm_sec;
|
||||
|
||||
seconds -= tm->__tm_gmtoff; // sub time zone to get UTC time
|
||||
seconds += g_timezone;
|
||||
return seconds;
|
||||
}
|
||||
|
||||
|
@ -690,7 +690,7 @@ time_t mktime(struct tm *tmptr)
|
|||
}
|
||||
timeInSeconds = ConvertUtc2Secs(tmptr);
|
||||
/* normalize tm_wday and tm_yday */
|
||||
ConvertSecs2Utc(timeInSeconds, tmptr->__tm_gmtoff, tmptr);
|
||||
ConvertSecs2Utc(timeInSeconds, -g_timezone, tmptr);
|
||||
return timeInSeconds;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue