从特定时区获取日期 - C.

时间:2013-03-25 17:21:01

标签: c date time timezone

我需要从特定时区获取日期/时间而不设置TZ变量。

 我尝试使用gmtime加上小时差异,我用这种方法得到的问题是时间变化,例如日光,或由小时引起的中国/美国之间的日差,我需要处理所有这些,是否有任何方式/库或任何我可以用来获得包含这些变化的特定时区?

我正在使用win32,如果它适用于所有内容会更好。谢谢!

2 个答案:

答案 0 :(得分:3)

执行此操作的最佳方法(如果我正确理解您的要求)是使用Olson / IANA TZ数据库。 Wikipedia article指向IANA sources

使用此库不是一个单行(尽管取决于您的平台,库可能已经安装或可以轻松安装)。然而(a)它是正确的事情,(b)它与你可能找到的任何其他东西一样健壮和准确,并且(c)已经足够清楚,我希望你在搜索信息时没有什么困难如果你需要,还有关于它的教程。

答案 1 :(得分:0)

也许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;
}