关于delphi:Windows中的历史夏令时

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.aspx

I'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