Часовые пояса идентифицируются по их идентификатору (так называемое «Имя ключа»), а не по локализованным именам. Идентификаторы не локализованы.
Таким образом, независимо от языка операционной системы, вы найдете информацию о часовом поясе Pacifi c по адресу:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Pacific Standard Time
Только из значений внутри значения Std
, Dlt
и Display
локализованы, а значения многоязыкового интерфейса пользователя указывают на то, где эти строки расположены в файлах ресурсов. Файлы ресурсов устанавливаются вместе с языковыми пакетами Windows. Обратите внимание, что вы не должны жестко кодировать значение (например, -212
), потому что в будущем обновлении может появиться новая строка, которая может его изменить.
Кроме того, если вам просто нужно получить информацию о часовом поясе для учитывая идентификатор, вам на самом деле не нужно обращаться к реестру вообще. Просто используйте функцию EnumDynamicTimeZoneInformation
для итерации по часовым поясам в поисках той, которая соответствует желаемой TimeZoneKeyName
(которая снова не локализована).
Если, однако, вы ища их локализации на языках , отличных от текущего языка ОС, вы можете попробовать взглянуть на проект TimeZoneWindowsResourceExtractor .