我的应用程序将过去和现在的日期从本地时间转换为 UTC。
我需要确保在正确处理过去日期的同时,我将尊重 Windows 的任何未来 DST 更新。
该应用程序是用 C++ 编写的,在 Server 2003 上运行。
我研究过的选项:
gmtime()
并且localtime()
对于过去的日期并不总是正确的,因为它们只会遵守当前的 DST 规则。(相关的SO问题)tz 数据库已退出,因为它需要单独的手动更新。
GetTimeZoneInformationForYear()
因为它需要 Vista/Server 2008,所以退出了。过去的 DST 信息存储在注册表中,但我正在寻找更高级别的内容。
升压
date_time
:- 类
us_dst_rules
已弃用,并且在操作系统更新时不会更新。 - class
dst_calc_engine<>
是它的继任者,但它也不尊重操作系统更新。
- 类
所以...
...还有其他人使用原始注册表解决方案来执行此操作吗?
...还有其他建议吗?
(编辑:发现dst_calc_engine
不支持 DST 更新)