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 TimeZone Database 项目仍然处于活动状态。
——杰伦
Windows 不存储历史数据,您将需要使用诸如tz 数据库之类的数据库。我找不到该特定页面上列出的任何 Delphi 代码,但可能会有一些浮动。否则,您必须从当前支持的一种语言移植它...
怎么样:在 Delphi 中将 UTC 字符串转换为 TDatetime
此外,在以下位置有一些讨论和 Delphi 代码:http ://www.tek-tips.com/viewthread.cfm?qid=1486209&page=1
你可以通过谷歌搜索找到相当多的信息:utc local delphi