从特定时区获取日期- C



我需要从特定时区获取日期/时间,而不需要设置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;
}

相关内容

  • 没有找到相关文章

最新更新