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