由于系统/usr/share/zoneinfo
数据库经常更新,我希望能够在一个运行时间很长的C ++程序中动态加载(并重新加载)。
现在我知道标准库将使用这个数据库,但我怀疑它是否提供动态重新加载它(或者至少我找不到与Google有关的任何内容。)
我可以使用任何C或C ++库或代码来执行此操作吗?
答案 0 :(得分:3)
我不确定这是否足够,但它是公共领域的许可,所以至少我可以将它拉入我的代码并根据我的需要进行调整。
答案 1 :(得分:1)
localtime
等使用tzset
设置的时区转换信息,因此您通常可以通过将TZ
设置为某个值来重新加载该信息,并调用{{1} ,设置它并再次调用它。这将适用于glibc,但您应该检查其他平台。
否则,您正在使用其他一些非Posix API来访问zoneinfo数据库,您应该查看库用于重新加载其数据的工具。