日期:2014-05-16  浏览次数:20616 次

关于time的问题,朋友们帮帮忙啊...
小弟在嵌入式目标板上使用time函数发现时间错误啊,和GMT时间相差了8个小时.
time_t   now;
(void)   time(&now);
printf( "%s\n ",ctime(&now));

=================================
假如现在本地时间是         Apr   12   12:00:00   2007,
则打印结果却是                 Apr   12   04:00:00   2007
=================================

请问time函数是如何获得系统日期的?这个问题可能原因有哪些阿?谢谢了~~~

------解决方案--------------------
寒,不懂,有没有分拿?
------解决方案--------------------
time拿到是本地系统时间,系统初始化时候有默认值,若取GMT标准时间,需要NTP Client同步才行啊。
------解决方案--------------------
用localtime_r 这个函数将你用time函数取得的时间转换民本地时间。就可以支持任何区域的时限自动翻译了。
------解决方案--------------------
时区问题!
给你个参考:
int main(){
char *wday[]={ "Sun ", "Mon ", "Tue ", "Wed ", "Thu ", "Fri ", "Sat "};
time_t timep;
struct tm *p;
time(&timep);
p=localtime(&timep);
printf ( "%d%d%d ", (1900+p-> tm_year),(l+p-> tm_mon), p-> tm_mday);
printf( "%s %d:%d:%d\n ", wday[p-> tm_wday],p-> tm_hour, p-> tm_min, p-> tm_sec);
return 0;
}