Delphi 有没有办法获取所有当前时区的时区信息

Delphi 有没有办法获取所有当前时区的时区信息,delphi,winapi,timezone,Delphi,Winapi,Timezone,我目前正在进行一个项目,我想收集所有当前时区的所有时区信息 WinApi.Windows.GetTimeZoneInformation函数仅返回当前时区数据。有没有办法得到所有时区的列表 我不需要它是100%准确的根据,我不需要存储在数据库中。我只需要获取数据,以便用户选择其他时区进行提醒。由于您将其标记为winapi,因此可以查询以下注册表路径: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 密钥二进制blob TZI

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

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

我不需要它是100%准确的根据,我不需要存储在数据库中。我只需要获取数据,以便用户选择其他时区进行提醒。

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

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

密钥二进制blob TZI对应于REG_TZI_格式结构,在Delphi中,该结构如下所示:

uses WinApi.Windows;

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

    StandardDate:   SYSTEMTIME;
    DaylightDate:   SYSTEMTIME;
end;

我发现了这一点,并决定改用它:执行此操作的Win32函数是。我不确定是否已经有了Delphi包装器。下面提供的链接gabr看起来很有希望,因为它直接处理注册表数据,这与Win32函数的功能类似。My GpTimezone unit freeware将其封装在类TGpRegistryTimeZones中。