Windows中的历史夏令时

在Windows中使用简单的方法(使用Delphi,而不是.NET)将UTC时间转换为当地时间,并进行夏时制调整。

数据可追溯到12年,因此需要考虑当时DST开始/结束日期的变化。


有趣的是,昨天在LinkedIn上出现了一个类似的问题。

这是我在那里给出的答案:

时区有些不稳定,尤其是夏令时开始/结束时。

这个数据库(http://en.wikipedia.org/wiki/Tz_database)定义了时区,并且它有时会改变,所以你也需要一个更新机制。

有一个.NET实现可以打包,或作为基础使用:http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspx

我不确定这个Delphi实现的最新版本是什么:http://sourceforge.net/projects/delphitz/

让我们知道你的最终实施。

编辑:上述项目似乎是空的,所以我进一步搜索,发现Delphi时区数据库项目仍然活跃。

--jeroen


Windows不存储历史数据,您将需要使用数据库,如tz数据库。 我找不到在该特定页面上列出的任何Delphi代码,但可能会有一些浮动。 否则,您必须从当前支持的其中一种语言中移植它...


如何:在Delphi中将UTC字符串转换为TDatetime

此外,还有一些讨论和Delphi代码可以在http://www.tek-tips.com/viewthread.cfm?qid=1486209&page=1

你可以在Google上搜索:utc local delphi

链接地址: http://www.djcxy.com/p/29399.html

上一篇: Historical daylight savings in Windows

下一篇: SetWaitableTimer and daylight saving adjustments