QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: wsteed

求高手:怎么得到当前的时区?

[复制链接]
 楼主| 发表于 2004-7-8 13:44:51 | 显示全部楼层
我的程序,显示是不一样的,
你的程序,是一样的。

不晓得是什么原因。

还有,我最想得到的是时区的名字~~有办法么?多谢~
回复

使用道具 举报

发表于 2004-7-8 14:19:56 | 显示全部楼层
暂时没办法,要不直接读 /etc/sysconfig/clock 中的Zone一项(很难受的办法)   
回复

使用道具 举报

 楼主| 发表于 2004-7-8 14:25:24 | 显示全部楼层
真TM的奇怪啊~~?有高手能解释下么??


还知道tzset()的用法么~


还有谁能得到时区啊~?郁闷~~~
回复

使用道具 举报

发表于 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()要缓冲!!

我没试,你们试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 15:34 , Processed in 0.034625 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表