我需要从特定时区获取日期/时间而不设置TZ
变量。
我尝试用gmtime
and加上小时差,我用这种方法得到的问题是时间变化,例如日光,或者由小时引起的中国/美国之间的天差,我需要处理所有其中,有什么方法/库或任何我可以用来获取包含这些变化的特定时区的方法吗?
我正在使用win32,如果它可以与所有东西一起使用会更好。谢谢!
执行此操作的最佳方法(如果我正确理解您的要求)是使用 Olson/IANA TZ 数据库。Wikipedia 文章指向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;
}