大家都知道GMT时间是统一的, 而当地时间会有变化. 
比如在美国的话, 当地时间会有冬令和夏令之分, 但是在中国的话就没有这种情况了. 
我现在用C++将当地时间转换为GMT, MFC中有没有函数直接给出当地时间与GMT之间的差的? 
因为我不能确定我的当地时间到底在美国还是中国(客户端软件全球用户都可能用), 
另外如果判断时区来判断是否需要处理冬令夏令的话, 像英国,澳大利亚什么的也有自己的冬令夏令时, 很麻烦. 
所以有没有函数直接给出时间差的啊?
最好简单给个例子,谢谢!

解决方案 »

  1.   

    time
    localtime;
    不过要先确认自己的地区. 用setlocale
      

  2.   

    MFC么?
    试试看
    CTime::GetGmtTm 
    CTime::GetLocalTm 
      

  3.   

    函数名称:     gmtime
    函数原型:     struct tm *gmtime(time_t  *time)
    函数功能:     得到以结构tm表示的时间信息
    函数返回:     以结构tm表示的时间信息指针
    参数说明:     time-用函数time()得到的时间信息
    所属文件:     <time.h>#include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <dos.h>
    char *tzstr="TZ=PST8PDT";
    int main()
    {
        time_t t;
        struct tm *gmt, *area;
        putenv(tzstr);
        tzset();
        t=time(NULL);
        area=localtime(&t);
        printf("Local time is:%s", asctime(area));
        gmt=gmtime(&t);
        printf("GMT is:%s", asctime(gmt));
        return 0;
    }
      

  4.   

    windows 的 api,不是MFC的。GetLocalTime, 这里得到的是本地时间。
    GetSystemTime ,这里得到的就是GMT时间。楼主如果要检测系统时间差的话,可能得看看相关的API了,我没做过,没法帮你。这些东西都和MFC没有多大关系,是WindowsAPI的功能。
      

  5.   

    感谢楼上各位,
    windows API 的也可以用, 恩, 根据大家提示我已经用自己方法完美解决了, 谢谢!