大家都知道GMT时间是统一的, 而当地时间会有变化.
比如在美国的话, 当地时间会有冬令和夏令之分, 但是在中国的话就没有这种情况了.
我现在用C++将当地时间转换为GMT, MFC中有没有函数直接给出当地时间与GMT之间的差的?
因为我不能确定我的当地时间到底在美国还是中国(客户端软件全球用户都可能用),
另外如果判断时区来判断是否需要处理冬令夏令的话, 像英国,澳大利亚什么的也有自己的冬令夏令时, 很麻烦.
所以有没有函数直接给出时间差的啊?
最好简单给个例子,谢谢!
比如在美国的话, 当地时间会有冬令和夏令之分, 但是在中国的话就没有这种情况了.
我现在用C++将当地时间转换为GMT, MFC中有没有函数直接给出当地时间与GMT之间的差的?
因为我不能确定我的当地时间到底在美国还是中国(客户端软件全球用户都可能用),
另外如果判断时区来判断是否需要处理冬令夏令的话, 像英国,澳大利亚什么的也有自己的冬令夏令时, 很麻烦.
所以有没有函数直接给出时间差的啊?
最好简单给个例子,谢谢!
localtime;
不过要先确认自己的地区. 用setlocale
试试看
CTime::GetGmtTm
CTime::GetLocalTm
函数原型: 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;
}
GetSystemTime ,这里得到的就是GMT时间。楼主如果要检测系统时间差的话,可能得看看相关的API了,我没做过,没法帮你。这些东西都和MFC没有多大关系,是WindowsAPI的功能。
windows API 的也可以用, 恩, 根据大家提示我已经用自己方法完美解决了, 谢谢!