有没有一种方法可以获取所有当前时区的时区信息

时间:2019-04-25 08:36:10

标签: delphi winapi timezone

我目前正在一个项目中,我想收集所有当前时区的所有时区信息。

WinApi.Windows.GetTimeZoneInformation函数仅返回当前时区数据。有没有办法获取所有时区的列表?

根据https://www.iana.org/time-zones,我不需要100%准确,也不需要将其存储在数据库中。我只需要获取数据,以便用户选择其他时区来提醒。

1 个答案:

答案 0 :(得分:1)

由于您将其标记为winapi,因此可以查询以下注册表路径:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

关键二进制blob TZI对应于REG_TZI_FORMAT结构,在Delphi中看起来像这样:

uses WinApi.Windows;

REG_TZI_FORMAT = record
    Bias:           LONG;
    StandardBias:   LONG;
    DaylightBias:   LONG;

    StandardDate:   SYSTEMTIME;
    DaylightDate:   SYSTEMTIME;
end;