UTC 시간을받는 데 문제가 있습니다. 테스트 코드와 함께, 내가 gmtime과 localtime으로 모두 같은 결과를 반환 것을 발견gmtime_r 및 localtime_r()은 vxworks에서 동일한 결과를 반환합니다.
void testTimeLib()
{
struct tm utcTime, localTime;
time_t now;
char utcStr[80], localStr[80];
time(&now);
gmtime_r(&now, &utcTime);
localtime_r(&now, &localTime);
memset(utcStr, 0, sizeof(utcStr));
strftime(utcStr, sizeof(utcStr), "%Y-%m-%dT%H:%M:%S", &utcTime);
memset(localStr, 0, sizeof(localStr));
strftime(localStr, sizeof(localStr), "%Y-%m-%dT%H:%M:%S", &localTime);
printf("UTC Time\tutcTime <%s>\n", utcStr);
printf("Local Time\tlocalTime <%s>\n", localStr);
}
결과가
-> testTimeLib
UTC Time utcTime <2014-12-19T10:57:33>
Local Time localTime <2014-12-19T10:57:33>
이 gmtime_r과 된 localtime_r의 소스 코드를 확인하는 것입니다, 나는 __getZoneInfo가 호출 발견 localtime_r은 0을 반환하며 이는 시간대가 0임을 의미하며 실제 시간대는 GMT + 8이어야합니다.
그럼 내 질문은 어떻게 시스템에 시간대를 설정할 수 있습니까?
http://stackoverflow.com/a/11785853/2410359 도움이 될 수 있습니다. – chux