|
发表于 2004-8-24 16:30:24
|
显示全部楼层
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* Pacific Standard Time & Daylight Savings */
char *tzstr = "TZ";
int main(void)
{
time_t t;
struct tm *gmt, *area;
char *name;
// putenv(tzstr);
// tzset();
// name=getenv("TZ");
// printf("timezone=%s\n",tzname[1]);
t = time(NULL);
area = localtime(&t);
printf("Local time is: %s", asctime(area));
fflush(stdout);
gmt = gmtime(&t);
printf("GMT is: %s", asctime(gmt));
return 0;
}
struct tm *ptm = localtime(&time_t_var1); struct tm *ptm1 = gmtime(&time_t_var2); 第二个调用会冲掉第一个调用。 所以,在转换这个地方,要小心。尽量缩短对localtime,gmtime族调用的结果依赖区段。 而且单线程、多线程使用的库也需要不同的。 在非多线程模式下,localtime、gmtime取得的tm的buffer是一个静态的变量而非_malloc_crt出来的。而且printf()要缓冲!!
我没试,你们试试 |
|