用于dynamic重载/ usr / share / zoneinfo数据库的库/代码?

由于系统/usr/share/zoneinfo数据库更新频率相当高,我希望能够在一个运行时间很长的C ++程序中dynamic加载(并重新加载)数据库。

现在我知道标准库会使用这个数据库,但是我怀疑它提供了dynamic的重新加载(或者至less我用Google找不到它)。

有没有任何C或C ++库或代码,我可以用它来做到这一点?

我是个白痴。 提供zoneinfo数据库的IANA也提供了一个库来处理它。 有趣的是,我通过阅读postgresql源代码发现了这一点。

我不确定这是否足够,但它是公共领域许可的,所以至少我可以把它拉到我的代码,并将其弯曲到我的需要。

localtime等人使用tzset设置的时区转换信息,所以你通常可以通过设置TZ值来重新载入这个信息,调用tzset ,设置它并再次调用它。 这将与glibc一起工作,但你可能应该检查其他平台。

否则,您正在使用一些其他非Posix API来访问zoneinfo数据库,您应该查看该库用于重新加载其数据的设施。