0

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

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

我正在使用win32,如果它可以与所有东西一起使用会更好。谢谢!

4

2 回答 2

3

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

使用这个库不是单行的(尽管取决于您的平台,该库可能已经安装或易于安装)。但是(a)这是正确的做法,(b)它与您可能找到的其他任何东西一样强大和准确,并且(c)众所周知,我希望您在谷歌上搜索信息不会有什么困难和有关它的教程,如果你需要的话。

于 2013-03-25T20:50:59.980 回答
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;
}
于 2013-03-25T17:49:36.057 回答