我需要从特定时区获取日期/时间而不设置TZ
变量。
我尝试使用gmtime
加上小时差异,我用这种方法得到的问题是时间变化,例如日光,或由小时引起的中国/美国之间的日差,我需要处理所有这些,是否有任何方式/库或任何我可以用来获得包含这些变化的特定时区?
我正在使用win32,如果它适用于所有内容会更好。谢谢!
答案 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;
}