我需要从特定时区获取日期/时间,而不需要设置TZ
变量。
我试图使用gmtime
和加上小时的差异,我用这种方法得到的问题,是时间变化,例如,日光,或中国/美国之间由小时引起的日差异,我需要处理所有这些,是否有任何方法/库或任何我可以用来获得特定的时区与这些变化包括?
我用的是win32,如果它能和所有的东西一起工作就更好了。谢谢!
最好的方法是使用Olson/IANA TZ数据库(如果我正确理解您的需求)。维基百科的文章指向IANA的来源。
使用此库不是一行代码(尽管取决于您的平台,库可能已经安装或易于安装)。然而,(a)这是正确的做法,(b)它和你可能找到的其他任何东西一样健壮和准确,(c)它足够有名,我希望你在谷歌上搜索有关它的信息和教程不会有什么困难,如果你需要的话。
也许localtime()
会适合你。
#include <stdio.h> /* puts, printf */
#include <time.h> /* time_t, struct tm, time, localtime */
int main ()
{
time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
printf ("Current local time and date: %s", asctime(timeinfo));
return 0;
}