Historical daylight savings in Windows
在Windows中(使用Delphi,而不是.NET)有没有一种简单的方法可以将UTC时间转换为本地时间,并进行日光节约调整?
数据可以追溯到12年前,因此需要考虑DST开始/结束日期在这段时间内的变化。
有趣的是,昨天LinkedIn上出现了一个非常相似的问题。
这就是我在那里给出的答案:
Time Zones are somewhat fluid,
especially when Daylight Saving Time
starts/finishes.This database (
http://en.wikipedia.org/wiki/Tz_database
) defines the time zones, and it
changes sometimes, so you need an
update mechanism as well.There is a .NET implementation that
you could wrap, or use as a base:
http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspxI'm not sure how up to date this
Delphi implementation is:
http://sourceforge.net/projects/delphitz/Let us know your final implementation.
编辑:上面提到的项目似乎是空的,所以我进一步搜索,发现Delphi时区数据库项目仍然处于活动状态。
——杰罗恩
Windows不存储历史数据,您需要使用TZ数据库等数据库。我找不到特定页面上列出的任何Delphi代码,但可能有一些浮动。否则,您将不得不从当前支持的语言之一导入它…
如何:在Delphi中将UTC字符串转换为TDateTime
此外,还有一些讨论和Delphi代码可以在:http://www.tek-tips.com/viewthread.cfm?上执行此操作。QID=1486209&page=1
你可以通过谷歌搜索找到一点关于这方面的信息:UTC本地Delphi