[ error ]
- Time conversion is not work properly.
[ problem ]
- mktime() returns the value of type time_t
that represents the local time.
[ solution ]
- Use timegm() for convert tm to time_t as UTC time
See, https://linux.die.net/man/3/timegm
Change-Id: Ic30fe0054c8f456a2ada13f35f3764e4599c545d
Signed-off-by: sangwan.kwon <sangwan.kwon@samsung.com>
(cherry picked from commit
1ba032d40e6806534a7d0c132af111cea6b06d08)
return 0;
char buf[27]; // asctime_r return 26 characters
+ memset(buf, 0, sizeof(buf));
LogDebug("Convert asn1 to tm: " << asctime_r(&tm, buf));
- *res = mktime(&tm);
+ *res = timegm(&tm);
+ LogDebug("Convert tm to time_t: " << *res);
// If time_t occured overflow, set TIME_MAX.
if (*res == -1) {
*res = TIME_MAX;
}
- // For Debugging.
- struct tm localTm;
- localtime_r(res, &localTm);
- LogDebug("Result time_t(tm format): " << asctime_r(&localTm, buf));
return 1;
}