1

有人知道我可以在 Windows(使用 MinGW)和 Linux 下与 C++ 一起使用的 TimeZone 数据库吗?

将时间转换为不同的时区是不够的,我需要时区的历史数据(包括 UTC 偏移量和夏令时。

我找到了一些,例如ftp://ftp.iana.org/tz/tz-link.html但我没有找到 c++ 的解析器

4

1 回答 1

0

谢谢!我尝试了以下示例:

    time_t time1 = makeTime(1975, 7, 2,10, 11, 41);
time_zone_ptr utc_tz(new posix_time_zone("UTC-00:00:00"));
local_date_time timeutc(toPtime(time1), utc_tz);

time_zone_ptr cet_tz = tz->tz_db.time_zone_from_region("Europe/Berlin");
local_date_time timecet(toPtime(time1), cet_tz);

cout<<timeutc<<endl; // Output: 1975-Jul-02 10:11:41 UTC
cout<<timecet<<endl; // Output: 1975-Jul-02 12:11:41 CEST

根据维基百科,从 1950 年到 1979 年,德国没有夏令时。但正如您在输出中看到的那样,结果是 CEST

我是否需要做任何特别的事情才能使用历史时区数据来提升?

谢谢弗洛里安

于 2013-03-16T14:06:07.287 回答