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/
让我们知道您的最终实现。
修改强> 上面提到的项目似乎空的,所以我进一步搜索,发现德尔福区数据库项目一>是仍然有效。
- 的Jeroen
其他提示
Windows不存储历史数据,您将需要使用一个数据库,如 TZ数据库。我找不到特定的网页上列出的任何Delphi代码,但可能有一些漂浮。否则,你就必须将它移植从的是一种语言的当前支持...
怎么样: 在Delphi中将UTC字符串转换为TDatetime
另外,还有一些讨论和 Delphi 代码用于执行此操作,网址为: http://www.tek-tips.com/viewthread.cfm?qid=1486209&page=1
你可以通过谷歌搜索找到相关内容: UTC 本地 德尔福