注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

C/C++ 语言函数获取当前时区  

2012-08-03 17:00:48|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
通过标准的c语言时间函数,自己计算也可以,不过visual stuido 2010中,是有_get_tzname  _get_timezone两个听说是标准的C++库函数来获取也很方便。


void main()
{
time_t rawtime, the_next_day;
struct tm local_timeinfo,the_next_day_info, *timeinfo;

time ( &rawtime );

timeinfo = localtime ( &rawtime );
local_timeinfo = *timeinfo;

the_next_day_info = local_timeinfo;
the_next_day_info.tm_hour += 25; // mktime的范围没有限制。
the_next_day = mktime(&the_next_day_info); //相应的 UTC时间的有 _mkgmtime 函数可以转换

//这两句不是必要的strftime 支持的tm struct的小时那些也是不受范围限制的。
timeinfo = localtime ( &the_next_day );
the_next_day_info = *timeinfo;

char cur_time[256];
strftime (cur_time,256, " %B %A %Y年%m月%d日 %H小时%M分%S秒 %c %x %X", &local_timeinfo);
cout << "当前时间是: " << cur_time<< endl;
strftime (cur_time,256, " %B %A %Y年%m月%d日 %H小时%M分%S秒 %c %x %X", &the_next_day_info);
cout << "第二天时间是: " << cur_time<< endl;


timeinfo = gmtime ( &rawtime );
cout << "你的当前时区是: 第 " << local_timeinfo.tm_hour - timeinfo->tm_hour << " 区" <<endl;


size_t a;
char time_zone[128];
long diff_secs;
_get_tzname(&a,time_zone,128,0);
_get_timezone(&diff_secs);

cout << "你的时区是 "<< time_zone << " 和UTC时间相差 " << diff_secs /3600 << " 小时" << endl;




cin >> a;

}




程序输出:

当前时间是: August Friday 2012年08月03日 16小时53分38秒 08/03/12 16:53:38 0
/03/12 16:53:38
你的当前时区是: 第 8 区
你的时区是 China Standard Time 和UTC时间相差 -8 小时


  评论这张
 
阅读(1738)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017